【发布时间】:2021-06-02 17:12:12
【问题描述】:
尝试执行 OleDbCommand 在 Excel 工作表中查找一行。每行在不同的单元格中都有一个低数字和一个高数字。没有行有重叠的数字。我没有得到任何结果或错误。虽然我知道我是一个行的范围。 205221 是工作表名称。 StartSerial 和 StopSerial 是列标题。我需要改用列字母吗?
***编辑:示例数据:
| Job | Descript | StartSerial | StopSerial |
|---|---|---|---|
| 55555 | Job1 | 44334 | 44897 |
| 55556 | Job2 | 44898 | 45001 |
| 55557 | Job3 | 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
【问题讨论】:
-
您的查询没有意义。将
serial替换为1,得到WHERE (StartSerial) >= 1 and (StopSerial) <=1。这相当于说 StartSerial 和 StopSerial 等于 1。 -
@Jimi 是的,这些来自第一行/标题。我在括号中有这两个名字。
-
@David 即使使用 '>=' 和 '
-
我想我说错了,但我仍然认为它不会给你想要的答案。您能否向我们提供一些您期望返回的示例数据的更新?
-
@David 我用示例表进行了编辑
标签: sql vb.net oledbcommand