2012-06-20 135 views
1

,我發現了錯誤:OLEDB提供商沒有找到

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

我有一個包含了安裝的Office 2010 32位64位應用程序在64位系統。我的64位應用程序如何訪問OLEDB?

如何列出系統上可用的提供程序?

+0

這是使用Visual Studio的?如果是這樣,您可以將目標CPU從64位更改爲32. http://msdn.microsoft.com/en-us/library/ff407621.aspx – Thousand

+0

構建不使用VS,應用程序需要保留64位。 – Justin808

回答

4

How can my 64bit application access OLEDB?

「Microsoft.ACE.OLEDB.12.0」,也就是說,Microsoft Access數據庫引擎2010可再發行可從here下載。還有一個64位版本。

可以找到「Microsoft.ACE.OLEDB.12.0」提供程序的連接字符串here

How can I list the available providers on the system?

使用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("=================================="); 
    } 
} 
} 
相關問題