首页 > 解决方案 > 范围查询 ~ VB

问题描述

尝试执行 OleDbCommand 在 Excel 工作表中查找一行。每行在不同的单元格中都有一个低数字和一个高数字。没有行有重叠的数字。我没有得到任何结果或错误。虽然我知道我是一个行的范围。205221 是工作表名称。StartSerial 和 StopSerial 是列标题。我需要改用列字母吗?

***编辑:示例数据:

工作 描述 启动序列 停止串行
55555 工作1 44334 44897
55556 工作2 44898 45001
55557 工作3 45002 46001
comm = New OleDbCommand("SELECT * from [205221$] WHERE (StartSerial) <= " & serial & " AND (StopSerial) >= " & serial, conn)
Try
    dr = comm.ExecuteReader
Catch ex As Exception
    MsgBox(ex)
End Try
While dr.Read
    Dim jobNum = dr("Job").ToString
    Dim jobName = dr("Descript").ToString
    TextBox1.AppendText(jobNum & " " & jobName)
End While

标签: sqlvb.netoledbcommand

解决方案


我更新了@David 和@AndrewMorton 都提供的内容。感谢您的帮助。

Using cmd = New OleDbCommand("SELECT * from [205221$] WHERE [StartSerial] <= ? AND [StopSerial] >= ?", conn)
   cmd.Parameters.Add("?", OleDbType.Integer).Value = serial
   cmd.Parameters.Add("?", OleDbType.Integer).Value = serial
   Dim reader = cmd.ExecuteReader()
   While reader.Read()
       Dim jobNum = reader("Job").ToString
       Dim jobName = reader("Descript").ToString
       TextBox1.AppendText(jobNum & " " & jobName)
   End While
End Using

推荐阅读