0

クエリ結果に含まれる可能性のある行数がわからない場合、クエリからデータを読み取り、各行を個別のラベルに表示するコードをどのように記述しますか?DataReaderを使用して1つの行を読み込もうとすると、存在しない行の列データを読み込もうとすると、例外がスローされます。これをコーディングする方法がわかりません。

If dr.HasRows Then
    dr.Read()
    LN2.Text = dr.Item("linenum").ToString
Else
    LN2.visible  = False         
End If

この例は、DataReaderを使用して2番目の行をロードする方法を示しています。これは、データの行が2つある場合に機能しますが、データの行が1つしかない場合は、例外がスローされます。最大12行のデータがありますが、実際のクエリ結果には1〜12行のデータが含まれている可能性があります。

4

1 に答える 1

1

このReadメソッドは、次の行の読み取りが成功したかどうかを示すブール値を返します。したがって、コードを次のように変更できます。

If dr.Read() Then
    LN2.Text = dr.Item("linenum").ToString
Else
    LN2.visible  = False         
End If

ただし、通常、このような場合、固定数のラベルにさまざまな数のデータ行を表示することは最善の方法ではありません。たとえば、ListBox代わりに単一のコントロールを使用した場合、すべてのロードコードを次のように簡略化できます。

While dr.Read()
    ListBox1.Items.Add(dr.Item("linenum").ToString())
End While

行ごとに複数のデータ列を表示する必要がある場合は、ListViewコントロール(Viewプロパティをに設定Details)またはコントロールのいずれかを使用することをお勧めしますDataGridView

于 2012-07-20T14:00:15.217 に答える