Как выбрать n строк с помощью IDataReader - PullRequest
0 голосов
/ 27 октября 2011

[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» и т. Д.?

Нужна ваша помощь, ребята ..

Большое спасибо.


EDIT

Вот база данных:

Таблица MenuNavCategory

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

И в таблицу добавлено какое-то значение. Я хочу показать 'CategoryName' на каком-нибудь ярлыке. Например:

lblCat1 | lblCat2 | lblCat3 | lblCat4

Затем, используя этот xReader.Read, сохраните значение в базе данных на эту метку на основе OrderNumber ...

1 Ответ

0 голосов
/ 01 февраля 2012

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. Я бы нашел другой способ на самом деле его кодировать, так как вышеизложенное полагается на то, что строки в базе данных находятся в правильном порядке и довольно некрасиво.

...