如何使用IDataReader选择n行



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

相关内容

  • 没有找到相关文章

最新更新