【发布时间】:2015-03-17 09:49:15
【问题描述】:
我刚刚将此代码移动到一个新的 sub 并尝试运行它并获取异常,如 tite 中所述。
Public Sub LoadPanel(TableName As String)
Debug.Print("LoadPanel:") 'name of module
PushCallStack("LoadPanel") 'name of module
Try
Using dbConnection As New OleDbConnection(My.Settings.SMSA_databaseConnectionString)
dbConnection.Open()
Debug.Print(" dbConnection Success")
Dim sqlcommand As String
sqlcommand = "SELECT " & TableName & ".[PanelName] FROM " & TableName & " WHERE (((" & TableName & ".[Owner])=" & CurrentClientID & ")) OR (((" & TableName & ".[Admin1])=" & CurrentClientID & ")) OR (((" & TableName & ".[Admin2])=" & CurrentClientID & ")) OR (((" & TableName & ".[Admin3])=" & CurrentClientID & ")) OR (((" & TableName & ".[Admin4])=" & CurrentClientID & "));"
Debug.Print(" sqlcommand = " & sqlcommand)
Dim getSomeData As New OleDbCommand(sqlcommand, dbConnection)
With getSomeData
.Parameters.AddWithValue("@variableName", "variableValue")
Debug.Print(" Executing: getSomeData")
End With
Debug.Print(" Success: getSomeData")
Debug.Print(" Try: DataReader")
Using dataReader As OleDbDataReader = getSomeData.ExecuteReader
Do While dataReader.Read
Dashboard_Client.ComboBox_PanelChoice.Items.Add(dataReader("PanelIP"))
Loop
End Using
End Using
PopCallStack() 'do not remove
Catch ex As Exception
GlobalErrHandler()
End Try
Debug.Print("LoadPanel End")
从调试面板:
LoadPanel:
dbConnection Success
Executing: getSomeData
Success: getSomeData
Try: DataReader
A first chance exception of type 'System.IndexOutOfRangeException' occurred in System.Data.dll
有没有办法解决此错误或进行变通以保留该功能?
谢谢。
【问题讨论】:
-
你能用
while循环而不是do-while吗? -
不幸的是,刚刚尝试并得到了同样的错误。谢谢,开发者。
-
您的查询中
variableName参数在哪里? \我找不到,但你添加了一个参数?? -
如果 dataReader 为空,do-while 会抛出错误
标签: sql vb.net visual-studio-2010 ms-access-2007