0

如果您不知道查询结果可能包含多少行,您将如何编写代码以从查询中读取数据并在单独的标签中显示每一行?如果您尝试使用 DataReader 读取太多行,当您尝试读取不存在的行上的列数据时,它会引发异常。我不确定如何编码。

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

此示例显示了我如何使用 DataReader 加载第二行。如果有两行数据,则此方法有效,但如果只有一行数据,则会引发异常。我最多有 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 回答