そのため、Microsoft Access MDB ファイルや Excel スプレッドシートなどのデータ ソースを照会するためのMicrosoft.Jet.OLEDB.4.0データ プロバイダーは、Windows 64 ビット オペレーティング システムでは機能しないことを知りました。
x86 環境と x64 環境の両方で互換性を確保するために、.NET 3.5 (C#) アプリケーションでこれらのファイル タイプに対してクエリを実行するには、何を使用する必要がありますか? 私はインターネットを精査しましたが、この非互換性を処理する方法について明確な答えを見つけることができないようです.
また、x64 環境で使用した場合に Microsoft.JET.OLEDB.4.0 プロバイダーが行うのと同じ例外をスローするように見えるため、ODBC プロバイダーと MSDASQL プロバイダーを使用してみましたが、うまくいきませんでした (私がひどく間違ったことをしていない限り)これらの他の 2 つのプロバイダーは、私の Windows XP x86 環境では正常に動作しますが)。
x64 システムでの ODBC 接続には%WINDIR%\System32\odbcad32.exeを使用する必要があると言っている人を見つけましたが、これを利用する方法を考えています。
x64 でスローされる例外の例:
************** 例外テキスト ************** System.InvalidOperationException: The 'Microsoft.Jet.OLEDB.4.0' provider is not registered onローカル マシン。System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString コンストラクター、DataSourceWrapper& datasrcWrapper) で System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString コンストラクター、OleDbConnection 接続) で System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions オプション、オブジェクト) poolGroupProviderInfo、DbConnectionPool プール、DbConnection owningObject)