2011-10-27 7 views
0

使用して、n個の行を選択する方法 -たIDataReader

私はこのコードで問題をした、[Visual Studio 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ラベルと私はデータベースからラベルの内容を解析したいと思います。 - 'MenuNavCat1'ラベル、データベース上の注文番号が1のメニュー、 - 'MenuNavCat2'ラベル、データベース上の注文番号2のメニュー、およびそれに表示されたいメニューon ...

where WHERE OrderNo = 1のようにwhereステートメントをコードに追加する方法などはありますか?

はそんなにありがとう...あなたの助けみんなが必要です。


EDITここ

がデータベースである:

表MenuNavCategory

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

、テーブルに挿入されたいくつかの値が存在します。 いくつかのラベルに 'CategoryName'を表示したいと思います。 例:

lblCat1 | lblCat2 | lblCat3 | lblCat4

そして、xReader.Readは、ORDERNUMBERに基づいて、そのラベル上にデータベースに値を格納することを使用して...

+0

[IDataReader.Read](http://msdn.microsoft.com/en-us/library/system.data.idatareader.read.aspx)を使用して、リーダーを次のレコードに進める必要があります(たとえば、「While 'If​​ xReader.Read'の代わりに' xReader.Read')。 –

+0

@TimSchmelter:それを使用する方法?私は '' xReader.Read'を '' xReader.Read' 'に変更しましたが、それは同じです。 –

+0

あなたのデータソースは1つのレコードしか持っていません。私はデータベースに複数のメニューがあると仮定します。あなたは私たちにSQLを表示する必要があります。 –

答えて

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オブジェクトがどのように機能するかを説明するためだけの例です。私は上記のように正しい順序でデータベースの行に依存し、かなり醜い実際にそれをコードする別の方法を見つけるだろう。

関連する問題