Итак, я узнал, что поставщик данных Microsoft.Jet.OLEDB.4.0 для запросов к источникам данных, таким как файлы Microsoft Access MDB и электронные таблицы Excel, не работает в 64-разрядных операционных системах Windows.
Что я теперь должен использовать для запросов к этим типам файлов в приложениях .NET 3.5 (C #), чтобы обеспечить совместимость как в среде x86, так и в x64? Я искал в Интернете и не могу кажется, найти прямой ответ о том, как справиться с этой несовместимостью.
Я также безуспешно пытался использовать ODBC-провайдера и MSDASQL-провайдера, поскольку они, похоже, выдают те же исключения, что и провайдер Microsoft.JET.OLEDB.4.0, когда используются в среде x64 (если я не делаю что-то явно не в порядке с этими двумя другими провайдерами, хотя они нормально работают в моей среде Windows XP x86).
Я обнаружил, что люди говорят, что мне нужно использовать % WINDIR% \ System32 \ odbcad32.exe для подключения ODBC в системах x64, но у меня есть идея, как это использовать.
Пример исключения, созданного под x64:
************** Exception Text **************
System.InvalidOperationException: поставщик «Microsoft.Jet.OLEDB.4.0» не зарегистрирован на локальном компьютере.
в System.Data.OleDb.OleDbServicesWrapper.GetDataSource (OleDbConnectionString constr, DataSourceWrapper & datasrcWrapper)
в System.Data.OleDb.OleDbConnectionInternal..ctor (OleDbConnectionString constr, соединение OleDbConnection)
в System.Data.OleDb.OleDbConnectionFactory.CreateConnection (параметры DbConnectionOptions, объект poolGroupProviderInfo, пул DbConnectionPool, DbConnection owningObject)