Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.68/28: Рейтинг темы: голосов - 28, средняя оценка - 4.68
Ieska
0 / 0 / 1
Регистрация: 21.04.2012
Сообщений: 57
1

Поставщик "Microsoft.Jet.OLEDB.4.0" не зарегистрирован на локальном компьютере

13.07.2014, 19:32. Просмотров 5780. Ответов 2
Метки нет (Все метки)

Всем доброго дня

Создала Class Library для подгрузки в AutoCAD, назначение которой - считывать определённые значения из чертежа AutoCAD. В этом же решении создала форму, в коде которой получаю эти значения, соединяюсь с базой данных и далее произвожу с ней некие манипуляции. То есть запускаю AutoCAD, с помощью netload подгружаю мою dll, выполняю свою команду, отображаю форму. Проблема в том, что подключение не открывается. При попытке открыть подключение выдаёт исключение
System.InvalidOperationException: Поставщик "Microsoft.Jet.OLEDB.4.0" не зарегистрирован на локальном компьютере.
До этого писала приложение WindowsForms, никак не связывающееся с AutoCAD, но в остальном такое же, с той же самой строкой подключения и всё работает.
Строка подключения
C#
1
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"C:\\***.mdb\";Jet OLEDB:Database Password=***
Изменение конечной платформы с AnyCPU на другую (Microsoft.ACE.OLEDB.12.0" не зарегистрирован на локальном компьютере) не помогло. При изменении на x64 ошибка та же, на x86 говорит, что сборки acdbmgd.dll и acmgd.dll, на которые даются ссылки, предназначены для другого процессора. Ссылки на эти dll я делаю для работы с AutoCAD.

Помогите решить, пожалуйста

Добавлено через 4 часа 19 минут
Проблему решила изменением значения Provider на Microsoft.ACE.OLEDB.12.0
В процессе ещё установила http://www.microsoft.com/en-us/download/details.aspx?id=13255, но не знаю, было ли тем, что также помогло решить задачу.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.07.2014, 19:32
Ответы с готовыми решениями:

Поставщик "Microsoft.Jet.OLEDB.4.0" не зарегистрирован на локальном компьютере.
Как исправить? (на Win7 64-bit)

Поставщик "Microsoft.Jet.OLEDB.4.0" не зарегистрирован на локальном компьютере
Необходимо подключить базу данных (access) к проекту, причем через интерфейс подключается без...

Поставщик "Microsoft.ACE.OLEDB.12.0" не зарегистрирован на локальном компьютере
string filename = "Overtimes _24W.xlsm"; string strConn =...

Поставщик "Microsoft.ACE.OLEDB.12.0" не зарегистрирован на локальном компьютере
При попытке подключить к C# проекту бд ms access 2013 или 2016 выдает ошибку: Поставщик...

Поставщик "Microsoft ACE.OLEDB.12.0" не зарегистрирован на локальном ПК
Программа полгода работала нормально с 13-м офисом и 15-ой студией. Хотел поменять фреймворк, в...

2
Smokeshow13
3 / 3 / 2
Регистрация: 05.06.2014
Сообщений: 23
14.07.2014, 15:08 2
Если мне память не изменяет, то 4.0 используется чисто под вин7.
На ХР она не работает
0
Terion
271 / 203 / 13
Регистрация: 18.06.2010
Сообщений: 491
16.07.2014, 16:16 3
>>>Если мне память не изменяет, то 4.0 используется чисто под вин7.
На ХР она не работает

неверно. провайдер Microsoft.Jet.OLEDB.4.0 - родной провайдер офиса до версии 2007. после 2007 он стал Microsoft.ACE.OLEDB.12.0. Любой провайдер может быть установлен отдельно. Но открыть файл придется тем провайдером, которым его создало его родное приложение.

Провайдеры всегда установятся офисным пакетом, а если нет цели его ставить, но нужно, как вы и сделали, скачать дистр Access Database Engine.

Еще обращу внимание, что программы чувствительны к битности сборки. Собирая приложение на AnyCPU на машине, которая, например, старая и ничего кроме 86 по определению собрать не может, вы облечете свою программу на возможные проблемы. Т.к. запущенная на 64 ее винда воспримет как 64, а на самом деле она 86, возникнет сбой, который просто так и не отловишь. Будет ругань на провайдеры, библиотеки, сборки. Но понять это можно только опытным путем )
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2014, 16:16

Microsoft.ACE.OLEDB.12.0" не зарегистрирован на локальном компьютере
Возникает такая ошибка: Microsoft.ACE.OLEDB.12.0" не зарегистрирован на локальном компьютере...

Microsoft.ACE.OLEDB.12.0" не зарегистрирован на локальном компьютере
OleDbConnection DBCon = new OleDbConnection(); DBCon.ConnectionString =...

Поставщик oledb 12 не зарегистрирован на этом компьютере
Написал программку для работы с бд, но вот проблема, на 7ке она запускается, а на 8ке выдает ошибку...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.