Провайдера нужно указать на строку подключения? - PullRequest
1 голос
/ 17 февраля 2009

У меня очень странная проблема с моим приложением, я получаю сообщение об ошибке следующим образом: System.ArgumentException: поставщик OLE DB не был указан в ConnectionString. Примером может быть «Provider = SQLOLEDB;».

Однако, когда я попытался указать провайдера в своем соединении как Provider = SQLOLEDB.1 или Provider = SQLOLEDB, я получаю еще одну ошибку с неверным ключевым словом «Provider».

Но одна вещь, которую я заметил, компьютер, на который я нацеливался, имел две разные системы баз данных, будет ли это причиной этой ошибки?

Есть идеи, как решить эту проблему?

Привет

Ответы [ 2 ]

1 голос
/ 17 февраля 2009

Предполагая, что вы используете ADO.NET, если вы хотите использовать разные системы баз данных, вам нужно исправить и DbConnection, а не только строку подключения.

Обратите внимание, что вы не можете использовать SqlConnection для OLEDB, вам нужно использовать System.Data.OleDb.OleDbConnection.

0 голосов
/ 17 февраля 2009

Похоже, вы пропустили некоторые биты строки подключения - попробуйте эти

Общая строка подключения:

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

...