开发者

vb.net to reduce code for displaying data in textboxes

On the page I have created I have a search facility that if a doctors number is searched it will bring up the doctors details, once search button is clicked the results are displayed in textboxes (I cannot use gridviews because this is not wanted)

sample of code placed on the search button

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

etc.... there are are 14 other textboxes that I want too display data in, so there is a large amount of repeated lines of code following the structure above. Can anyone suggest a better way of doing this?

Another problem of repetition of code comes from the prev page that is linked to it. The page before 开发者_如何学编程has a summary of details of doctors, once the row is clicked it takes you to this page displaying a more detailed view of their personal details. The doctor number selected will be passed onto the more detailed view using a querystring so I have the code

Automatic population of the selected doctors will fill the labels on page load

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

etc...

What I am doing works correctly but the coding style looks poor. Any help would be much appreciated.

Thank you


Why not use a DataReader or DataSet or whatever you prefer to return the whole record, then simple move from column to column and populate the textboxes that way? Instead of returning one value at a time.


If the goal is less code,

SELECT * FROM tblDoctor WHERE xxx 

into a DataTable or DataReader, as Thyamine suggested, above.

From there, you could also put the textboxes in an HTML table in a Repeater which you will bind to that datatable. You won't have to individually assign any of the values, the databinding will do it for you!

I know that people think HTML tables are evil but it's the easiest way to line up the labels I assume you will also want.

I also know that the control I suggested is called a Repeater but you only have one record. If you don't tell the compiler, I won't. :)

From parts of your question, it sounds like you're wondering whether to send all of the bits of information along in the querystring but that doesn't sound like a good idea to me because it invites users to mess with the data in the querystring.

You didn't mention - are these textboxes meant for editing? A Save button inside the Repeater would have easy access to all of the controls to build your update statement. You could also put the Save button outside the repeater and refer to the repeater's first Item to find the controls.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜