我正在努力使用OLEDB从VB.NET应用程序连接到SQL数据库。我通常使用ADO.NET或ODBC for Oracle连接到数据库。我使用的连接字符串如下:
Provider=SQLOLEDB;User ID=myUser;Password=myPassword;Initial Catalog=database;Data Source=server;
我得到的错误是:"附加信息:无法打开数据库'数据库'登录请求。登录失败。"
数据库,用户名和密码绝对正确。我已通过登录SQL Studio Manager并成功连接到数据库来确认这一点。
因此必须是提供者不正确。我尝试了一些不同的提供商,例如SQLOLEDB.1。如何准确找出要使用的提供程序?
答案 0 :(得分:1)
不要打扰OLEDB。由于您使用的是SQL Server,因此只需使用SQL Server内置的.NET Framework数据提供程序(list of .NET data providers)。
实际上,您甚至不必担心连接字符串语法恰到好处。您也可以使用内置连接字符串构建器。
以下是一些示例代码,可帮助您入门:
Imports System.Data.SqlClient
// ...
Dim connStringBuilder As SqlConnectionStringBuilder = New SqlConnectionStringBuilder()
connStringBuilder.DataSource = "myservername"
connStringBuilder.UserID = "myusername"
connStringBuilder.Password = "mypassword"
connStringBuilder.InitialCatalog = "mydatabase"
Using conn As SqlConnection = New SqlConnection(connStringBuilder.ToString())
conn.Open()
Using cmd As SqlCommand = New SqlCommand("SELECT mycol FROM MyTable", conn)
Using reader As SqlDataReader = cmd.ExecuteReader()
Do While reader.Read()
Console.WriteLine("Managed to fetch: {0}", reader("mycol"))
Loop
End Using
End Using
End Using
答案 1 :(得分:0)
我重新启动了服务器并解决了连接字符串问题。我会删除这个问题,但其他用户也有答案。