Кто подскажет.
Я пишу прогу стандарта 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, то работают оба варианта.
Что может быть?
21 января 2010 в 10:05
Я обычно делаю так, кладу на форму DataGrid подключаюсь через помощник к базе Access там же будет написана строка подключения и далее все просто
OleDbConnection DBConnect = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +"путь к базе данных");
Все то, что написано в скобках, я копировал из конструктора.
Далее
DBConnect.Open();
…
тыц-тыц-тыц =)
…
DBConnect.Close();
21 января 2010 в 10:05
Ну естественно после DataGrid я удаляю с формы
20 января 2010 в 13:03
В Студии такого нет, но есть в ОС в Панель управления -> Администрирование -> Data Sources (ODBC). Там есть список доступных в системе провайдеров, так вот там только SQL Server v6.01.7600 и т.д. После утановки SQLServer 2008 SP1 добавился SQL Server Native Client 10.0. Так что провайдеров нет, а Visual Studio создает подключение в БД, когда я копирую строку подключения и использую её в качестве параметра ConnectionString и OleDbconnection прога выдает Exception с Messege'ем типа, что такой провайдер не зарегестрирован в системе.
20 января 2010 в 0:00
Поступил ответ:
точно сказать не могу. но где-то в студии. по-моему в свойствах или проекта или солюшена должен быть список доступных провайдеров для подключени к БД.
переписываем имя из списка видмых/доступных и все будет ок