在我创建的页面上,我有一个搜索工具,如果搜索医生号码,它将显示医生详细信息,一旦点击搜索按钮,结果显示在文本框中(我不能使用网格视图,因为这不是通缉)
搜索按钮上的代码示例
Query statement = "SELECT DocNumber FROM tblDoctor WHERE DNum LIKE '%"
execute the query and get the result
The result is converted to string and Execute Scalar is used
DocNum.Text = Result1
Query statement = "SELECT DocName FROM tblDoctor WHERE DNum LIKE '%"
execute the query and get the result
The result is converted to string and Execute Scalar is used
DocName.Text = Result2
等....还有14个其他文本框我也想要显示数据,所以在上面的结构后面有大量重复的代码行。谁能建议一个更好的方法呢?
重复代码的另一个问题来自链接到它的prev页面。之前的页面有医生详细信息的摘要,一旦点击该行,它将带您到此页面显示其个人详细信息的更详细视图。选择的医生号码将使用查询字符串传递到更详细的视图,因此我有代码
所选医生的自动填充将填写标签 在页面加载
Request the query string and store into variable dNum
Query statement = "SELECT DocNumber FROM tblDoctor WHERE DNum = " & dNum"
Get result from query convert to string and use execute scalar
lblDocNum.Text = Res1
Query statement = "SELECT DocNumber FROM tblDoctor WHERE DNum = " & dNum"
Get result from query convert to string and use execute scalar
lblDocNum.Text = Res1
等...
我正在做的工作正常,但编码风格看起来很差。任何帮助将不胜感激。
谢谢
答案 0 :(得分:1)
为什么不使用DataReader或DataSet或者您喜欢的任何内容返回整个记录,然后简单地从一列移动到另一列并以这种方式填充文本框?而不是一次返回一个值。
答案 1 :(得分:0)
如果目标是更少的代码,
SELECT * FROM tblDoctor WHERE xxx
进入DataTable或DataReader,正如Thyamine所建议的那样。
从那里,您还可以将文本框放在Repeater中的HTML表中,您将绑定到该数据表。您不必单独分配任何值,数据绑定将为您完成!
我知道人们认为HTML表格是邪恶的,但这是排列我认为你也想要的标签的最简单方法。
我也知道我建议的控件叫做Repeater,但你只有一条记录。如果你不告诉编译器,我不会。 :)
从你问题的部分内容来看,你会想知道是否要在查询字符串中发送所有信息,但这对我来说听起来不是一个好主意,因为它会让用户弄乱数据在查询字符串中。
您没有提及 - 这些文本框是否适合编辑? Repeater中的Save按钮可以轻松访问所有控件以构建更新语句。您也可以将“保存”按钮放在转发器外部,并参考转发器的第一个项目来查找控件。