Question

[ASP .Net - Microsoft Visual Web Developer 2010]

Hi all,

I've problem with this code:

With MenuNavCatDataSource
  Dim xReader As Data.IDataReader = .Select(DataSourceSelectArguments.Empty)

  If xReader.Read Then
    MenuNavCat1.Text = xReader.Item("MenuCategoryName")
    MenuNavCat2.Text = xReader.Item("MenuCategoryName")
    MenuNavCat3.Text = xReader.Item("MenuCategoryName")
    MenuNavCat4.Text = xReader.Item("MenuCategoryName")
    MenuNavCat5.Text = xReader.Item("MenuCategoryName")
  End If
End With

I've 5 label and I want to parse the content of the label from the database. The database contains menus ordered from 1 to 5. And I want to show it on: - 'MenuNavCat1' label, menu with order number 1 on database, - 'MenuNavCat2' label, menu with order number 2 on database, and so on...

How to add where statement to the code, just like 'WHERE OrderNo = 1', and so on..?

Need your help guys..

Thank you so much.


EDIT

Here is the database:

Table MenuNavCategory

 | Column Name  |  Data Type   | 
 |-----------------------------| 
 | MenuNavCatID |  int         | 
 | CategoryName |  varchar(20) |  
 | OrderNumber  |  int         |
 |-----------------------------|

And there is some value inserted to the table. I want to show the 'CategoryName' onto some label. For example:

lblCat1 | lblCat2 | lblCat3 | lblCat4

Then, using that xReader.Read, store the value on the database onto that label based on the OrderNumber...

Was it helpful?

Solution

The DataReader only reads one row of data at a time. If you have 5 labels then you should have 5 rows in your database. Then you iterate through each row using the DataReader and assign the labels:

With MenuNavCatDataSource
 Dim xReader As Data.IDataReader = .Select(DataSourceSelectArguments.Empty)

 'i is just a counter to keep track of what row we are on.
 Dim i as integer = 1

 If xReader.Read Then
  Select Case i
   Case 1 'First Row from DB.
     MenuNavCat1.Text = xReader.Item("MenuCategoryName")
   Case 2 'Second Row from DB... etc.
    MenuNavCat2.Text = xReader.Item("MenuCategoryName")
   Case 3
    MenuNavCat3.Text = xReader.Item("MenuCategoryName")
   Case 4
    MenuNavCat4.Text = xReader.Item("MenuCategoryName")
   Case 5
    MenuNavCat5.Text = xReader.Item("MenuCategoryName")

   x+=1
 End If
End With

The above is just an example to try and explain how the DataReader works. I'd find another way to actually code it as the above relies on the rows in the database being in the correct order and is pretty ugly.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top