是否需要在连接字符串上指定提供程序?

时间:2009-02-17 08:59:18

标签: c# sql database connection-string

我的应用程序有一个非常有趣的问题,我收到如下错误: System.ArgumentException:未在ConnectionString中指定OLE DB提供程序。一个例子是'Provider = SQLOLEDB;'。

但是,当我尝试在我的连接上将提供程序表示为Provider = SQLOLEDB.1或Provider = SQLOLEDB时,我收到另一个错误,指出无效关键字'Provider'。

但有一件事我注意到,我所针对的计算机有2个不同的数据库系统会导致这个错误吗?

知道如何解决这个问题吗?

此致

2 个答案:

答案 0 :(得分:1)

假设您使用的是ADO.NET,如果您想使用不同的数据库系统,那么您还需要更正DbConnection,而不仅仅是连接字符串。

请注意,您不能将SqlConnection用于OLEDB,而是需要使用System.Data.OleDb.OleDbConnection

答案 1 :(得分:0)

看起来你错过了连接字符串的一些部分 - 试试这些

常规连接字符串:

strConnect = _T("Provider=sqloledb;Data Source=MyServerName;"
        "Initial Catalog=MyDatabaseName;"
        "User Id=MyUsername;Password=MyPassword;");

命名实例连接字符串:

strConnect = _T("Provider=sqloledb;Data Source=MyServerName\MyInstanceName;"
    "Initial Catalog=MyDatabaseName;User Id=MyUsername;Password=MyPassword;");

值得信赖的安全:

strConnect = _T("Provider=sqloledb;Data Source=MyServerName;"
        "Initial Catalog=MyDatabaseName;"
        "Integrated Security=SSPI;");

从这里http://www.codeproject.com/KB/database/connectionstrings.aspx#OLE DB SqlServer