我正在運行Visual Studio 2008,並被告知我具有創建#temp表的所有權限。我之前完成了這個工作,但由於某種原因,我在新應用程序中的sql總是返回0行。SQL語句在SQL Server中運行 - 不在Visual Studio中
我有存儲在我的應用程序事件的SQL連接字符串
Friend sqlConnProducts as String
我創建一個SQL字符串,並將其傳遞給SQLExecute函數
Private Function SQLExecute(ByVal sSQL As String) As DataTable
Dim rtnTable As New DataTable()
Dim sConn As New SqlConnection(My.Application.sqlConRecvInsp)
Dim sCmd As New SqlCommand(sSQL, sConn)
Dim taAdapter As New SqlDataAdapter(sCmd)
Try
sConn.Open()
sCmd.CommandTimeout = 0
taAdapter.Fill(rtnTable)
sConn.Close()
Catch ex As Exception
MessageBox.Show("SQL Failed at: " & ex.Message & vbNewLine & ex.StackTrace)
End Try
sConn.Dispose()
sCmd.Dispose()
Return rtnTable
End Function
我甚至有一個debug.print( SQL)在SQL創建階段。當我從調試中運行輸出時,我得到大約7k條記錄。有什麼建議麼?
你知道臨時表是什麼,對吧? – Lucero 2010-11-23 14:41:57
對於您的實物信息,您應該將`sConn.Dispose()`和`sCmd.Dispose()`放入`Finaly`子句中,以便無論您的代碼是否拋出,它們都會被丟棄。此外,我建議一個很好的做法,不要說最好的做法,那就是將連接的實例化和命令的初始化包含在「Using ... End Using」塊中。 – 2010-11-23 14:45:00