未在本地計算機上註冊Microsoft.ACE.OLEDB.12.0

在使用SQL Server數據庫將Excel內容導入到表中的時候,或者開發環境種需要把Excel數據轉化爲sql數據,可能會出現:未在本地計算機上註冊"Microsoft.ACE.OLEDB.12.0"的錯誤,導致無法導入數據,那麼,要怎麼修正這種錯誤呢?

 

 在開發.net項目中,通過microsoft.ACE.oledb讀取excel文件信息時,報錯:

  “未在本地計算機上註冊“microsoft.ACE.oledb.12.0”提供程序”

 DataTable dt = new DataTable();
            string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + _path + ";" + "Extended Properties=\"Excel 12.0;HDR=No\"";

            using (OleDbConnection connection = new OleDbConnection(connectionString))
            {
                string SQL = "select * from [sheet1$]";

           }

 

#報錯原因:

  主要有以下幾種原因:

  1、沒有安裝數據訪問組件,需要安裝相應版本的數據訪問組件(AccessDatabaseEngine);

  2、沒有安裝相應版本的Office客戶端,需要安裝相應版本的Office客戶端;

  3、沒有在IIS應用程序池配置默認屬性,需要在相應的IIS應用程序池啓用32位應用程序;

  4、連接字符串的問題。採用Microsoft.Jet.OleDb.4.0,可以讀取excel2007以前的版本,在客戶機上不需要部署office,採用Microsoft.Ace.OleDb.12.0的時候,需要安裝引擎。

  5、順便說一下,在使用“Microsoft.Jet.OLEDB.4.0”,也會報類似錯誤,原因有可能是,Microsoft.Jet.OLEDB.4.0在64位系統上不支持,需要修改架構,從x64改爲x86,無論是WinForm還是ASP.NET;或者修改連接字符串爲Microsoft.ACE.OLEDB.12.0並且安裝AccessDatabaseEngine x64數據訪問組件;

適用於office2010的

  Microsoft Access Database Engine 2010 Redistributable

  https://www.microsoft.com/zh-CN/download/details.aspx?id=13255

 

  此下載將安裝一組組件,非 Microsoft Office 應用程序可以使用它們從 2007/2010 Office system 文件中讀取數據,例如從 Microsoft Office Access 2007/2010(mdb 和 accdb)文件以及 Microsoft Office Excel 2007/2010(xls、xlsx 和 xlsb)文件中讀取數據。這些組件還支持與 Microsoft Windows SharePoint Services 和文本文件建立連接。
  此外,還會安裝 ODBC 和 OLEDB 驅動程序,供應用程序開發人員在開發與 Office 文件格式連接的應用程序時使用。

 

直接官網搜索AccessDatabaseEngine.exe。選擇32位,Microsoft Access Database Engine 2010 Redistributable下載就好了!

 

親測有效,什麼開啓應用程序池32位,貌似沒用!直接安裝完這個32位包,直接能用!

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