Microsoft.Jet.OLEDB.4.0 против Microsoft.ACE.OLEDB.12.0, что я должен использовать? - PullRequest
0 голосов
/ 04 июня 2019

Я разрабатываю плагин для AutoCAD и мне нужно читать данные из Microsoft Access. Но у меня всегда было исключение:

поставщик 'microsoft.xxx.oledb.x.0' не зарегистрирован на локальном компьютере

Windows 10 1803 + Office 365 + Microsoft Access Database Engine 2010 + Autodesk AutoCAD 2015

Код юнит-теста:

var path = "path_to_mdb_file");
var connectionString = $"Provider=Microsoft.Jet.OLEDB.4.0;Data source={path}";
using (var connection = new OleDbConnection(connectionString))
{
    connection.Open();
...

тест пройден

var path = "path_to_mdb_file");
var connectionString = $"Provider=Microsoft.ACE.OLEDB.12.0;Data source={path}";
using (var connection = new OleDbConnection(connectionString))
{
    connection.Open();
...

исключение: the 'microsoft.ace.oledb.12.0' provider is not registered on the local machine

Код плагина CAD:

var path = "path_to_mdb_file");
var connectionString = $"Provider=Microsoft.Jet.OLEDB.4.0;Data source={path}";
using (var connection = new OleDbConnection(connectionString))
{
    connection.Open();
...

исключение: the 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine

var path = "path_to_mdb_file");
var connectionString = $"Provider=Microsoft.ACE.OLEDB.12.0;Data source={path}";
using (var connection = new OleDbConnection(connectionString))
{
    connection.Open();
...

все в порядке.


Тот же код, другой результат, почему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...