Vb.net 访问OleDbDataReader项时发生IndexAutoFrange错误
我有一些sql在access 2010中运行良好,并返回正确的值。但是,在VB.NET中,当我运行它时,会在while循环中导致上述错误。HasRows博士正在返回“TRUE”,但变量“itm”在自动窗口中不显示任何内容。有人能解释一下为什么会发生这种情况,以及我如何纠正它吗。谢谢Vb.net 访问OleDbDataReader项时发生IndexAutoFrange错误,vb.net,visual-studio-2010,visual-studio,ms-access,Vb.net,Visual Studio 2010,Visual Studio,Ms Access,我有一些sql在access 2010中运行良好,并返回正确的值。但是,在VB.NET中,当我运行它时,会在while循环中导致上述错误。HasRows博士正在返回“TRUE”,但变量“itm”在自动窗口中不显示任何内容。有人能解释一下为什么会发生这种情况,以及我如何纠正它吗。谢谢 Dim cmd As OleDbCommand = New OleDbCommand("SELECT Max(Requests.[Request no]) AS [MaxOfRequest no], Requests
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
Dim cmd As OleDbCommand=New OleDbCommand(“选择Max(Requests.[Request no])作为[MaxOfRequest no],Requests.Customer,”&
最大([Request Box].[Request no])为[MaxOfRequest no 1],[Request Box]。客户&
“从请求,[请求框]”&
“按请求分组。客户,[请求框]。客户”&
“具有(((Requests.Customer)='”&cmbCustomer.Text&“)和(([请求框].Customer)='”&cmbCustomer.Text&“)”&
“按请求订购。客户,[请求框].Customer”,oledbCnn)
dr=cmd.ExecuteReader()
如果dr.HasRows,则此处不需要方括号:
itm = CStr(dr.Item("[MaxOfRequest no]"))
方括号只是SQL语句中的分隔符;它们不是列名本身的一部分。请尝试以下方法:
itm = CStr(dr.Item("MaxOfRequest no"))
dr.HasRows
为true意味着存在行。这并不意味着存在一个特定的字段(如[MaxOfRequest no]
),这是错误试图说的。非常感谢Gord