我收到错误:
System.InvalidOperationException: The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
我有一个 64 位系统和一个安装了 Office 2010 32 位的 64 位应用程序。我的 64 位应用程序如何访问 OLEDB?
如何列出系统上可用的提供程序?
我的 64 位应用程序如何访问 OLEDB?
“Microsoft.ACE.OLEDB.12.0”,即 Microsoft Access Database Engine 2010 Redistributable 可以从这里下载。还有一个 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("==================================");
}
}
}