使用什么提供商?

时间:2015-08-22 21:54:07

标签: vb.net oledb

我正在努力使用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。如何准确找出要使用的提供程序?

2 个答案:

答案 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)

我重新启动了服务器并解决了连接字符串问题。我会删除这个问题,但其他用户也有答案。