0

[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' 等等..?

需要你们的帮助。。

太感谢了。


编辑

这是数据库:

表菜单NavCategory

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

并且有一些值插入到表中。我想在某个标签上显示“类别名称”。例如:

lblCat1 | lblCat2 | lblCat3 | lblCat4

然后,使用该 xReader.Read,根据 OrderNumber 将数据库上的值存储到该标签上...

4

1 回答 1

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

于 2012-02-01T17:07:10.080 回答