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 OrderNo = 1'のように、コードにwhereステートメントを追加する方法など。

あなたの助けが必要です。

どうもありがとう。


編集

データベースは次のとおりです。

テーブルMenuNavCategory

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

そして、テーブルに挿入された値があります。'CategoryName'をラベルに表示したい。例えば:

lblCat1 | lblCat2 | lblCat3 | lblCat4

次に、そのxReader.Readを使用して、データベースの値をOrderNumber...に基づいてそのラベルに保存します。

4

1 に答える 1

0

DataReaderは、一度に1行のデータのみを読み取ります。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 に答える