我在Windows XP Professional SP3框上運行Visual Studio 2008。VB.NET連接到Win2008 SQL服務器DB
的服務器是在Windows 2008 R2 SP1企業
服務器是我們的網絡上,我能夠通過我的連接字符串中使用的DNS名稱根據IP地址進行ping到它,以及。
在ObjDa.Fill(dsReturn)語句中發生此錯誤。
沒有可用的錯誤消息,結果代碼: DB_E_ERRORSOCCURRED(0x80040E21)。
Dim strQuery As String = "select * from sys.Tables"
Dim strConn As String = "Server=dev.xxxxxxx.vmc;" & _
"Uid=xxxx;PWD=xxxxx;Database=report1;Integrated Security=False;"
Dim ObjDa As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(strQuery, strConn)
Try
Dim dsReturn As DataSet = New DataSet
ObjDa.Fill(dsReturn)
ObjDa.Dispose()
Return dsReturn
Catch ex As Exception
Dim strError as string = ex.Message()
End Try
編輯
我已經改變了我的代碼中使用以下命令行,每添的意見建議
Dim ObjDa As SqlDataAdapter = New SqlDataAdapter(pStrQuery, strConnection)
現在,我得到這個消息
用戶'vmc \ adam'登錄失敗。
當我通過遠程桌面連接到該服務器的連接,登錄與我的Windows憑據,並帶來了SQL Management Studio中......身份驗證類型爲「Windows身份驗證」的「VMC \亞當」和我沒有輸入密碼。
但是,當我在連接字符串中使用相同的憑據時,它出錯了。想法?
編輯
我發現在連接字符串中使用以下設置和刪除用戶名和密碼,啓用Windows身份驗證提出了一個網站。
這現在正在工作。
integrated security=SSPI;persist security info=False; Trusted_Connection=Yes;
爲什麼使用'OleDbDataAdapter'而不是'SqlDataAdapter'?你也應該使用'SqlConnection'。即使在發生異常的情況下,也可以使用'using-Statement'作爲連接和數據適配器,以確保它們被處置(並關閉)。 –