none
Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.” 程序抛出这个异常,怎么解决呢? RRS feed

  • 问题

  • 我用OleDbConnection连接excel,读取数据到dataset

    代码如下:

    public DataSet ExcelToDS(string Path)
            {
                string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;";
                OleDbConnection conn = new OleDbConnection(strConn);
                conn.Open();
                string strExcel = "";
                OleDbDataAdapter myCommand = null;
                DataSet ds = null;
                strExcel = "select * from [sheet1$]";
                myCommand = new OleDbDataAdapter(strExcel, strConn);
                ds = new DataSet();
                myCommand.Fill(ds, "table1");
                return ds;
            }

    执行到 conn.Open();的时候抛出异常

    Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.” 

    请问怎么解决?

    2021年5月11日 7:00

答案

  • 你好,

    首先你需要确认是否安装了下面的这个软件在你的电脑上。

    Microsoft Access Database Engine 2010 Redistributable

    如果没有,请安装下对应版本的软件。

    其次,在软件安装完成后,请使用下面的字符串去尝试访问:

    conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path+ ";Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1;MAXSCANROWS=0'";

    之后,点击属性找到你的项目平台,改为x64。

    希望可以帮到你。

    Best Regards,

    Jack


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 BillQu0002 2021年5月12日 0:32
    2021年5月11日 8:58
    版主