vb.net减少在文本框中显示数据的代码

时间:2011-03-10 19:27:03

标签: asp.net vb.net coding-style

在我创建的页面上,我有一个搜索工具,如果搜索医生号码,它将显示医生详细信息,一旦点击搜索按钮,结果显示在文本框中(我不能使用网格视图,因为这不是通缉)

搜索按钮上的代码示例

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

等...

我正在做的工作正常,但编码风格看起来很差。任何帮助将不胜感激。

谢谢

2 个答案:

答案 0 :(得分:1)

为什么不使用DataReader或DataSet或者您喜欢的任何内容返回整个记录,然后简单地从一列移动到另一列并以这种方式填充文本框?而不是一次返回一个值。

答案 1 :(得分:0)

如果目标是更少的代码,

SELECT * FROM tblDoctor WHERE xxx 

进入DataTable或DataReader,正如Thyamine所建议的那样。

从那里,您还可以将文本框放在Repeater中的HTML表中,您将绑定到该数据表。您不必单独分配任何值,数据绑定将为您完成!

我知道人们认为HTML表格是邪恶的,但这是排列我认为你也想要的标签的最简单方法。

我也知道我建议的控件叫做Repeater,但你只有一条记录。如果你不告诉编译器,我不会。 :)

从你问题的部分内容来看,你会想知道是否要在查询字符串中发送所有信息,但这对我来说听起来不是一个好主意,因为它会让用户弄乱数据在查询字符串中。

您没有提及 - 这些文本框是否适合编辑? Repeater中的Save按钮可以轻松访问所有控件以构建更新语句。您也可以将“保存”按钮放在转发器外部,并参考转发器的第一个项目来查找控件。