"Microsoft.Jet.OLEDB.4.0"提供程序未在本地计算机注册。

3

有人能帮忙解决这个错误吗?当我尝试连接到一个mdb文件时,出现了“本地计算机上未注册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());
    }
}

我尝试过这个方法,效果非常好。http://blog.nkadesign.com/2008/windows-2008-the-microsoftjetoledb40-provider-is-not-registered-on-the-local-machine/ - Muhammad Omar ElShourbagy
2个回答

10

这是因为64位系统没有适用的Jet驱动程序,我猜您正在尝试在x64位操作系统上运行此程序。您需要编译程序以针对x86目标。在项目属性中,选择生成选项卡,将平台目标设置为x86。


现在有一个64位版本的Jet驱动程序可用。但由于其局限性,它也不能帮助解决问题。 - Masood Khaari

5
如果您在64位操作系统上运行应用程序,则Microsoft现已发布了2010 Office System Driver Beta:数据连接组件,该组件支持32位和64位操作系统。因此,使用此驱动程序而不是传统的Microsoft.Jet.OLEDB.4.0驱动程序将使我们在64位服务器上运行64位应用程序(这正是我们所需要的)。
虽然这是beta版,但对我来说它很好用。
您可以从2010 Office System Driver Beta: Data Connectivity Components下载此驱动程序。
谢谢

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接