singlepost

C#/MSAccess: OleDbConnection (WinXP SP2 x64) << На главную или назад  

Кто подскажет.
Я пишу прогу стандарта WPF в MS Visual Studio 2008. Програмиа должна получать данынй из БД созданной в MS Access 2003/2007/2010.
Код :
. . .
using System.Data.OleDb;
. . .
OleDbConnectionStringBuilder ConnectionStringBuilder = new OleDbConnectionStringBuilder();
ConnectionStringBuilder.Provider = "Microsoft.ACE.OLEDB.12.0";
ConnectionStringBuilder.Add("User Id", "Admin");
ConnectionStringBuilder.Add("Jet OLEDB:Database Password", Password);
ConnectionStringBuilder.DataSource = DataSource;
this.Initialize(ConnectionStringBuilder.ConnectionString);

Connection = new OleDbConnection(ConnectionStringBuilder.ConnectionString);
Connection.Open();

. . .

Подключение не происходит, пишет что такой провайдер не зарегистрирован в ОС. Пробывал "Microsoft.ACE.OLEDB.4.0" – пишет тоже самое. Но, если тестить в Windows XP SP2 x86, то работают оба варианта.

Что может быть?

5 ответов в теме “C#/MSAccess: OleDbConnection (WinXP SP2 x64)”

  1. 4
    Александр Ястребов ответил:

    Я обычно делаю так, кладу на форму DataGrid подключаюсь через помощник к базе Access там же будет написана строка подключения и далее все просто

    OleDbConnection DBConnect = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +"путь к базе данных");

    Все то, что написано в скобках, я копировал из конструктора.
    Далее

    DBConnect.Open();

    тыц-тыц-тыц =)

    DBConnect.Close();

  2. 3
    Александр Ястребов ответил:

    Ну естественно после DataGrid я удаляю с формы

  3. 2
    Александр Чернов ответил:

    В Студии такого нет, но есть в ОС в Панель управления -> Администрирование -> Data Sources (ODBC). Там есть список доступных в системе провайдеров, так вот там только SQL Server v6.01.7600 и т.д. После утановки SQLServer 2008 SP1 добавился SQL Server Native Client 10.0. Так что провайдеров нет, а Visual Studio создает подключение в БД, когда я копирую строку подключения и использую её в качестве параметра ConnectionString и OleDbconnection прога выдает Exception с Messege'ем типа, что такой провайдер не зарегестрирован в системе.

  4. 1
    Мария Мархайчук ответил:

    Поступил ответ:
    точно сказать не могу. но где-то в студии. по-моему в свойствах или проекта или солюшена должен быть список доступных провайдеров для подключени к БД.
    переписываем имя из списка видмых/доступных и все будет ок

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.