关于“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”解决办法

最近我编写一个程序使用到从本地EXCEL中将信息调入DataGridView中,涉及部分代码如下:

///


        /// 从Excel表中导入订单信息
        ///

        ///
        ///
        private void InputExcelInFor_Click(object sender, EventArgs e)
        {
            try
            {
                excelPath = @"E:/导入订单信息.xlsx";// 将信息固定在共享盘E盘中,以便将文件直接下载到该盘中
                string  FileType = System.IO.Path.GetExtension(excelPath);
                string sqlCon;
                if (FileType == ".xls")
                {
                  qlCon = @"Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = '" + excelPath + "';Extended Properties=Excel 8.0";
                }// 旧版Excel
                 else
                {
                   sqlCon = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excelPath + ";Extended Properties='Excel 12.0;HDR=YES;IEMX=1'";
                 }//2007版本
                 string ExcelStr = "select * from [Sheet1$]";
                 showExcelContent(sqlCon, ExcelStr);
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

程序引用的也添加了 Microsoft Excel 12.0 Object Library 1.6版, 而调试的时候显示:“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。后来经过查询知道是因为AccessDatabaseEngine的版本不对,我的电脑系统是64位的,而安装的AccessDatabaseEngine 2007是32位的。因此我现卸载掉AccessDatabaseEngine 2007(32位),然后在网站上下载ccessDatabaseEngine 2010 X64并安装,再调试就OK了。

链接:https://pan.baidu.com/s/1ylgGh9dXco6BFHljGR1AQA
提取码:tbvg

如果有需要的可以从上面的网盘中下载,希望可以帮助到你。

你可能感兴趣的:(编程)