【发布时间】:2018-06-16 02:33:31
【问题描述】:
我有一个数据库,其中包含一个名为restaurant 的表。该表有名为“time”和“tableno”的列,有 20 行。
我正在使用此代码读取数据:
Dim connString As String = "server=DESKTOP-69QA9LH\SQLEXPRESS; database=servicedb; integrated security=true"
Dim conn As New SqlConnection(connString)
Dim command As SqlCommand
Dim reader As SqlDataReader
conn.Open()
Dim query As String
query = "select time,tableno from restaurant "
command = New SqlCommand(query, conn)
reader = command.ExecuteReader
reader.Read()
Dim d1 As DateTime = ToolStripStatusLabel1.Text
Dim d2 As DateTime = reader("time")
Dim diff As Short = DateDiff(DateInterval.Minute, d2, d1)
If reader("tableno") = "2" AndAlso diff = "5" Then
Button3.BackColor = Color.LawnGreen
End If
If reader("tableno") = "2" AndAlso diff = "10" Then
Button3.BackColor = Color.LawnGreen
End If
If reader("tableno") = "2" AndAlso diff = "15" Then
Button3.BackColor = Color.LawnGreen
End If
If reader("tableno") = "1" AndAlso diff = "5" Then
Button1.BackColor = Color.Brown
End If
If reader("tableno") = "1" AndAlso diff = "10" Then
Button1.BackColor = Color.Brown
End If
If reader("tableno") = "1" AndAlso diff = "15" Then
Button1.BackColor = Color.Brown
End If
它几乎可以工作,但问题是它只读取表中的第一行。我的意思是,当我单击按钮处理此代码时,按钮仅根据表格的第一行更改背景颜色。
'tableno' 2 的行是第一行,它改变了背景颜色。但是 'tableno' 1 是第二行,我无法读取这一行来更改背景颜色。
如何使它与其他行一起使用?
【问题讨论】:
-
您需要花一些时间了解 ADO.NET 的工作原理。你知道你调用的
Read方法实际上是做什么的吗?看来你真的没有。花时间阅读该方法的文档并查看一些示例。 Here 是我自己的。 -
你能帮我更正我的代码吗?因为我不确定如何将你的代码实现到我的代码中。
-
原理明白了吗?那就是问题所在。在您的代码中,您调用了一次
Read,因此您只读取了一条记录。如果您希望读取每条记录,那么您必须继续调用Read,直到没有更多记录可供读取。你通常如何多次做同样的事情?通过使用循环。我提供的链接演示了如何做到这一点。我不再提供任何内容,因为本网站并非旨在作为基础教程或代码编写服务。 -
请您查看此网址以提高问题的质量stackoverflow.com/help/how-to-ask
标签: sql-server database vb.net sqldatareader