我在我的 Windows XP Professional SP3 机器上运行 Visual Studio 2008。
服务器在 Windows 2008 R2 Enterprise 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 ...身份验证类型是“VMC\adam”的“Windows 身份验证”,我没有输入密码。
但是,当我在连接字符串中使用相同的凭据时,它会出错。想法?
编辑
我发现一个站点建议在连接字符串中使用以下设置,并删除用户名和密码,以启用 Windows 身份验证。
现在正在工作。
integrated security=SSPI;persist security info=False; Trusted_Connection=Yes;