[ASP .Net - Microsoft Visual Web Developer 2010]
大家好,
我对此代码有疑问:
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
我有5个标签,我想从数据库中解析标签的内容。该数据库包含从1到5订购的菜单。我想在以下位置显示: - 'MenuNavCat1'标签,数据库中订单号为1的菜单, - 'MenuNavCat2'标签,数据库中订单号为2的菜单,等等......
如何在代码中添加where语句,就像'WHERE OrderNo = 1',等等..?
需要你的帮助..
非常感谢你。
修改
这是数据库:
表MenuNavCategory
| Column Name | Data Type |
|-----------------------------|
| MenuNavCatID | int |
| CategoryName | varchar(20) |
| OrderNumber | int |
|-----------------------------|
表中插入了一些值。 我想在某个标签上显示'CategoryName'。 例如:
lblCat1 | lblCat2 | lblCat3 | lblCat4
然后,使用该xReader.Read,根据OrderNumber将数据库上的值存储到该标签上......
答案 0 :(得分:0)
DataReader一次只读取一行数据。如果您有5个标签,那么您的数据库中应该有5行。然后使用DataReader迭代每一行并分配标签:
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
以上只是尝试解释DataReader如何工作的示例。我会找到另一种方法来实际编码它,因为上面依赖于数据库中的行按正确的顺序而且非常难看。