2009-11-14 89 views
3

有人可以幫我解決這個錯誤嗎?當我嘗試打開一個到mdb的連接時,我得到「'Microsoft.Jet.OLEDB.4.0'提供程序未在本地計算機上註冊」錯誤。我該如何解決這個問題?「Microsoft.Jet.OLEDB.4.0」提供程序未在本地計算機上註冊

我的代碼非常簡單:

class ImportTDB { 
    private string filename; 
    private string connectionString; 

    private int collisions = 0; 

    public ImportTDB(String filename) { 
     this.filename = filename; 
     this.connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename; 
    } 

    public void loadCustomerList() { 
     DataTable dt = new DataTable(); 
     using (OleDbConnection conn = new OleDbConnection(connectionString)) { 
      OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM Names", conn); 
      conn.Open(); 
      adapter.Fill(dt); 
      conn.Close(); 
     } 

     Console.WriteLine(dt.ToString()); 
    } 
} 
+0

我已經嘗試此下載此驅動程序和它的工作般的魅力。 http://blog.nkadesign.com/2008/windows-2008-the-microsoftjetoledb40-provider-is-not-registered-on-the-local-machine/ –

回答

10

這是因爲有no Jet driver for 64-bit systems,我想你想在x64位操作系統上運行此。你需要編譯你的程序到x86。在項目屬性「生成」選項卡中,將「平臺目標」設置爲x86。

+0

現在有一個[64位版本的Jet驅動程序]( http://stackoverflow.com/questions/1991643/microsoft-jet-oledb-4-0-provider-is-not-registered-on-the-local-machine/1992009#1992009)可用。但它也無法幫助,因爲[其侷限性](http://stackoverflow.com/questions/13854698/how-to-install-visual-studio-2010-setup-project-with-ms-access-database-在-A-COM#comment28064050_13854971)。 –

+0

相關:http://stackoverflow.com/a/1992009/1454514 –

5

如果您在64位操作系統中運行應用程序,Microsoft現在發佈了支持32位和64位操作系統的2010 Office System Driver Beta:數據連接組件。因此,使用此驅動程序而不是傳統的Microsoft.Jet.OLEDB.4.0驅動程序將爲我們提供在64位服務器上運行的64位應用程序(這正是我們真正需要的)。

雖然這是在測試版,它對我來說工作得很好。

您可以從2010 Office System Driver Beta: Data Connectivity Components

Thnks

相關問題