Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
448 views
in Technique[技术] by (71.8m points)

c# - The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine

Can someone help me with this error? When I try to open a connection to an mdb, I get "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine" error. How can I correct this?

My code is pretty simple:

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());
    }
}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

That's because there is no Jet driver for 64-bit systems and I suppose you are trying to run this on a x64 bit OS. You need to compile your program to target x86. In the project properties, Build tab, set Platform target to x86.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...