【发布时间】:2014-01-24 12:11:46
【问题描述】:
我有一些在 access 2010 中可以正常工作并返回正确值的 sql。但是,在 VB.NET 中,当我运行它时,会在 while 循环中导致上述错误。 dr.HasRows 返回 'TRUE' 但 var 'itm' 在自动窗口中不显示任何内容。有人可以解释为什么会发生这种情况以及我该如何纠正它。谢谢
Dim cmd As OleDbCommand = New OleDbCommand("SELECT Max(Requests.[Request no]) AS [MaxOfRequest no], Requests.Customer, " &
"Max([Request Boxes].[Request no]) AS [MaxOfRequest no1], [Request Boxes].Customer " &
"FROM Requests, [Request Boxes] " &
"GROUP BY Requests.Customer, [Request Boxes].Customer " &
"HAVING (((Requests.Customer)='" & cmbCustomer.Text & "') AND (([Request Boxes].Customer)='" & cmbCustomer.Text & "')) " &
"ORDER BY Requests.Customer, [Request Boxes].Customer", oledbCnn)
dr = cmd.ExecuteReader()
If dr.HasRows Then <--- this returns true
While dr.Read
itm = CStr(dr.Item("[MaxOfRequest no]")) <--- ERROR HERE
itm2 = CStr(dr.Item("[MaxOfRequest no1]"))
End While
End If
【问题讨论】:
-
dr.HasRows为 true 表示存在 行。这并不意味着存在特定的字段(如[MaxOfRequest no]) - 错误试图说明这一点。
标签: vb.net visual-studio-2010 visual-studio ms-access