使用什么提供商?
What Provider to use?
我正在努力使用 OLEDB 从 VB.NET 应用程序连接到 SQL 数据库。我通常使用 ADO.NET 或 ODBC for Oracle 连接到数据库。我使用的连接字符串如下:
Provider=SQLOLEDB;User ID=myUser;Password=myPassword;Initial Catalog=database;Data Source=server;
我得到的错误是:"Additional information: Cannot open database 'database' requested by the login. The login failed."
数据库、用户名和密码绝对正确。我已通过登录 SQL Studio Manager 并成功连接到数据库来确认这一点。
所以一定是Provider不正确。我尝试了几个不同的供应商,例如SQLOLEDB.1。我如何准确找出要使用的提供商?
不要为 OLEDB 而烦恼。由于您使用的是 SQL 服务器,因此只需为 SQL 服务器使用内置的 .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
我重新启动了服务器,连接字符串问题已解决。我会删除这个问题,但有其他用户的回答。
我正在努力使用 OLEDB 从 VB.NET 应用程序连接到 SQL 数据库。我通常使用 ADO.NET 或 ODBC for Oracle 连接到数据库。我使用的连接字符串如下:
Provider=SQLOLEDB;User ID=myUser;Password=myPassword;Initial Catalog=database;Data Source=server;
我得到的错误是:"Additional information: Cannot open database 'database' requested by the login. The login failed."
数据库、用户名和密码绝对正确。我已通过登录 SQL Studio Manager 并成功连接到数据库来确认这一点。
所以一定是Provider不正确。我尝试了几个不同的供应商,例如SQLOLEDB.1。我如何准确找出要使用的提供商?
不要为 OLEDB 而烦恼。由于您使用的是 SQL 服务器,因此只需为 SQL 服务器使用内置的 .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
我重新启动了服务器,连接字符串问题已解决。我会删除这个问题,但有其他用户的回答。