1

エラーが発生しました:

System.InvalidOperationException: The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.

Office201032ビットがインストールされている64ビットアプリケーションを備えた64ビットシステムがあります。64ビットアプリケーションはどのようにしてOLEDBにアクセスできますか?

システムで利用可能なプロバイダーを一覧表示するにはどうすればよいですか?

4

1 に答える 1

5

64ビットアプリケーションはどのようにしてOLEDBにアクセスできますか?

「Microsoft.ACE.OLEDB.12.0」、つまり、Microsoft Access DatabaseEngine2010再頒布可能パッケージはここからダウンロードできます。64ビットバージョンもあります。

「Microsoft.ACE.OLEDB.12.0」プロバイダーの接続文字列は、ここにあります。

システムで利用可能なプロバイダーを一覧表示するにはどうすればよいですか?

OleDbEnumerator.GetRootEnumeratorを使用します。

using System;
using System.Data;
using System.Data.OleDb;

class Program
{
 static void Main()
 {
   OleDbDataReader reader = OleDbEnumerator.GetRootEnumerator();

   DisplayData(reader);

   Console.WriteLine("Press any key to continue.");
   Console.ReadKey();
 }

 static void DisplayData(OleDbDataReader reader)
 {
   while (reader.Read())
   {
     for (int i = 0; i < reader.FieldCount; i++)
     {
       Console.WriteLine("{0} = {1}",
        reader.GetName(i), reader.GetValue(i));
     }
     Console.WriteLine("==================================");
   }
 }
}
于 2012-06-20T21:06:54.467 に答える