Oledb连接挂起VB.Net
我正在使用OLEDB连接到AS400计算机。当我有一个不会返回任何内容的SQL语句时,它只是挂在适配器命令Fill上Oledb连接挂起VB.Net,vb.net,oledb,oledbconnection,oledbcommand,Vb.net,Oledb,Oledbconnection,Oledbcommand,我正在使用OLEDB连接到AS400计算机。当我有一个不会返回任何内容的SQL语句时,它只是挂在适配器命令Fill上 Function ExecuteOLEDBQuery(ByVal cmdtext As String) As DataTable Try Dim connString As String = "Provider=IBMDA400;Persist Security Info=True;User ID=@@USERID;Password=@@PASSWORD
Function ExecuteOLEDBQuery(ByVal cmdtext As String) As DataTable
Try
Dim connString As String = "Provider=IBMDA400;Persist Security Info=True;User ID=@@USERID;Password=@@PASSWORD;Data Source=@@SYSTEM"
Dim as400 As New OleDb.OleDbConnection(connString)
Dim cmd As New OleDb.OleDbCommand(cmdtext, as400)
Dim adapter As New OleDb.OleDbDataAdapter(cmd)
cmd.CommandTimeout = 60 'Doesn't work. It never times out.
Dim dt As New DataTable
as400.Open()
adapter.Fill(dt) 'This is where it hangs
as400.Close()
adapter.Dispose()
cmd.Dispose()
Return dt
Catch ex As Exception
Return Nothing
End Try
End Function
有什么想法吗?可能是AS400本身的连接。尝试此版本,该版本以稍微不同的顺序处理对象:
Function ExecuteOLEDBQuery(cmdtext As String) As DataTable
Using cn = New OleDbConnection("Provider=IBMDA400;Persist Security Info=True;User ID=@@USERID;Password=@@PASSWORD;Data Source=@@SYSTEM")
cn.Open()
Using da = New OleDbDataAdapter(cmdtext, cn)
Dim dt = New DataTable
da.Fill(dt)
Return dt
End Using
End Using
End Function
这是行不通的。连接没有问题。另一个将返回某些内容的SQL语句可以正常工作。SQL不会返回任何东西,因为fill命令挂起。我开始认为它得到的不是什么,而是一个真正大的文件,它导致了主要的速度减慢。