如果您不知道查询结果可能包含多少行,您将如何编写代码以从查询中读取数据并在单独的标签中显示每一行?如果您尝试使用DataReader读取太多行,则在尝试读取不存在的行上的列数据时会抛出异常。我不知道如何编码。
If dr.HasRows Then
dr.Read()
LN2.Text = dr.Item("linenum").ToString
Else
LN2.visible = False
End If
此示例显示了我如何使用DataReader加载第二行。如果有两行数据,则此方法有效,但如果只有一行数据,则会引发异常。我最多有12行数据但是,但我的实际查询结果可能包含1到12行数据。
答案 0 :(得分: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
)或{{1控制。