【问题标题】:How to navigate to next data record from database using data reader? vb.net如何使用数据阅读器从数据库导航到下一个数据记录? VB.net
【发布时间】:2014-11-09 00:03:06
【问题描述】:

我想创建一个按钮,让我可以导航到下一个数据记录并显示在文本框中。

这是我当前的代码,它只能在文本框中显示第一条记录。

    Dim cmd As New SqlCommand
    cmd.Connection = Conn
    cmd.CommandText = "SELECT sendby,enquiry,status FROM Message WHERE recipient LIKE '" & namelbl.Text & "'"

    Dim dr As SqlDataReader
    dr = cmd.ExecuteReader


    If dr.HasRows Then

        dr.Read()
        form.Label2.Text = dr.Item("sendby")
        form.Label4.Text = dr.Item("enquiry")

        form.Label6.Text = dr.Item("status")

        dr.Close()

    End If
    Conn.Close()

那么如何在文本框中显示不同的行数据?

【问题讨论】:

    标签: vb.net visual-studio sqlcommand datareader


    【解决方案1】:

    这应该允许您循环通过DataReader

    Do While dr.Read
        ' Work with items inside loop
    Loop
    If dr.IsClosed = False Then
        dr.Close()
    End If
    

    【讨论】:

    • 你能解释更多吗?我无法真正理解这个循环是如何工作的。
    • ExecuteReader 使用 SQL 查询的只读检索检索填充 SqlDataReader。 Do-Loop 遍历查询中的每条记录,允许您对每条记录执行操作。
    • 感谢您的解释,现在我明白您的意思了!顺便问一下,如果我想导航到上一条记录怎么办?
    • 如果您需要前进和后退,您需要查看DataSet。这是一个示例站点:vb.net-informations.com/dataset/dataset-sqlserver.htm 请记住,使用 DataSet 会在服务器上产生额外的开销,因为它必须将整个结果集保存在内存中。
    【解决方案2】:

    你可以这样做

      While dr.Read
            form.Label2.Text = dr.Item("sendby")
            form.Label4.Text = dr.Item("enquiry")
            form.Label6.Text = dr.Item("status")
            dr.Close()
      Wend
      Conn.Close()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-02
      • 1970-01-01
      • 2016-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多