Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
 Аватар для aleksskay4
71 / 68 / 46
Регистрация: 02.12.2015
Сообщений: 891
Записей в блоге: 1

Работа с Access с разными версиями .NET

28.02.2017, 14:08. Показов 2164. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Среда Visual Studio 2015. Когда по умолчание стоит версия 4.6 такой код работает, а когда меняю на версию 4, то нет.
Когда меняю версию выдает ошибку " Поставщик "Microsoft.Jet.OLEDB.4.0" не зарегистрирован на локальном компьютере."
Как быть ? Мне нужно создать приложение работающий с access 2007 на .NET 4.
C#
1
2
3
4
5
6
7
8
 OleDbConnection con = new OleDbConnection();
            con.ConnectionString = @"Provider = Microsoft.Jet.OLEDB.4.0; Data Source = Database.mdb";
            con.Open();
            OleDbCommand com = new OleDbCommand("select * from Tasks", con);
            DataSet dataSet = new DataSet();
            OleDbDataAdapter adapter = new OleDbDataAdapter(com);
            adapter.Fill(dataSet);
            dataGridView1.DataSource = dataSet.Tables[0];
Добавлено через 2 часа 26 минут
Никто не сталкивался с такой проблемой?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.02.2017, 14:08
Ответы с готовыми решениями:

Что лучше: работа с Access через ADO.NET или силами самого Access?
Считаю, что лучше работать с регулярно поступающим в Access объемом данных, разработав приложение Windows Forms C# и управляя процессом...

Подключение двух dll, работающих под разными версиями .net
Добрый день! Проблема такая: к проекту на c# необходимо подключить две библиотеки dll. Одна из них не работает, если целевой платформой...

Работа с базой данных Access через ADO.NET
Учусь работать с базой данных Access через ADO.NET. Попробовал поработать с помощью мастеров - не понравилось, очень много непонятного...

3
44 / 44 / 24
Регистрация: 01.05.2012
Сообщений: 178
28.02.2017, 14:50
Если на NET 4 и с 7 офисом, то примерно строка подключения будет выглядеть так:

C#
1
String connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data" + @" Source= <имя_бд>"
0
 Аватар для aleksskay4
71 / 68 / 46
Регистрация: 02.12.2015
Сообщений: 891
Записей в блоге: 1
01.03.2017, 19:46  [ТС]
При изменении версии .NET какие файлы нужно изменить?
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18282 / 14205 / 5368
Регистрация: 17.03.2014
Сообщений: 28,884
Записей в блоге: 1
01.03.2017, 21:29
Лучший ответ Сообщение было отмечено aleksskay4 как решение

Решение

aleksskay4, я бы попробовал смотреть какие provider-ы для Access нам доступны и выбирал первый подходящий. Для этого есть класс OleDbEnumerator
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Список провайдеров в порядке убывания приоритета
string[] supportedProviders = {"Microsoft.Jet.OLEDB.4.0", "Microsoft.ACE.OLEDB.12.0"};
int providerIndex = -1;
using (var dbReader = OleDbEnumerator.GetRootEnumerator())
{
    while (dbReader.Read())
    {
        int idx = Array.IndexOf(supportedProviders, (string)dbReader["SOURCES_NAME"]);
        if (idx == -1) continue;
        if (providerIndex == -1 || (providerIndex != -1 && providerIndex > idx)) providerIndex = idx;
    }
}
if (providerIndex != -1)
{
    string provider = supportedProviders[providerIndex]; 
}
else
{
    // Не найден провайдер для Access
}
Обновление от 28 марта 2019
Вариант с использованием LINQ
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
// Список провайдеров в порядке убывания приоритета
string[] supportedProviders = {"Microsoft.Jet.OLEDB.4.0", "Microsoft.ACE.OLEDB.12.0"};
 
var installedProviders = new OleDbEnumerator().GetElements().AsEnumerable().Select(row => row.Field<string>("SOURCES_NAME"));
string provider = supportedProviders.Intersect(installedProviders).FirstOrDefault();
if (provider == null)
{
    // Не найден провайдер для Access
}
else
{
    // Подключение используя значение provider
}
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.03.2017, 21:29
Помогаю со студенческими работами здесь

Работа с разными версиями Outlook
Доброго всем дня! Есть приложение, отсылающее (или подготавливающее для отправки) e-mail'ы. Естественно, добавлена ссылка на...

Работа разных браузеров с разными версиями Java
Добрый день, форумчане. Скажите пожалуйста, возможно ли так: Чтобы IE 8 работал с явой 1.6.х, а мозила с последней, 8 явой? Реально...

Некорректная работа ККМ в 1с поликлинике с разными версиями драйверов
В моей организации стоит много ККМ, подключены через терминал к развернутой на сервере переписанной вдоль и поперек 1с Поликлиникой,...

Работа с документами xls и xlsx на машинах с разными версиями офиса (2003-2013)
Здравствуйте! Требуется работать с документами xls и xlsx на машинах с разными версиями офиса(2003-2013), поэтому библиотеки на основе...

Ddm между разными версиями
Всем привет! Не подскажет ли кто-нибудь, возможно ли настроить DDM (Domino Domain Monitoring) между разными версиями серверов Domino,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru