關於“未在本地計算機上註冊“microsoft.ACE.oledb.12.0”提供程序”解決辦法

最近我編寫一個程序使用到從本地EXCEL中將信息調入DataGridView中,涉及部分代碼如下:

/// <summary>
        /// 從Excel表中導入訂單信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        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

如果有需要的可以從上面的網盤中下載,希望可以幫助到你。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章