[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。读取,将数据库中的值存储到基于OrderNumber的标签上…
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是如何工作的。我会找到另一种方法来实际编码它,因为上面的代码依赖于数据库中的行以正确的顺序排列,并且非常难看。