ASP.NET - Microsoft.ACE.OLEDB.12.0 提供者並未登錄於本機電腦上

使用 asp.net 讀取 access 時所發生之問題。

 

當我們使用 asp.net 讀取資料庫時,一般我們都是連接 MSSQL

並引用 SqlClient 進行讀取

using System.Data.SqlClient;

 

倘若我們要讀取 Access(2010) 的時候,便會引用 OleDb

using System.Data.OleDb;

 

 

錯誤訊息

而在引用 OleDb 後,通常第一次使用會發生伺服器錯誤

「Microsoft.ACE.OLEDB.12.0 提供者並未登錄於本機電腦上」

 

 

處理方式

此一問題為基於未安裝 Access Database Engine 2010 之驅動程式。

至官方下載套件即可:Microsoft Access Database Engine 2010 可轉散發套件

 

安裝注意事項

倘若主機為 32 bit,安裝對應之 32 bit 套件即可;若為 64bit,務必兩者皆安裝,

在 64bit 安裝兩者時將發生以下訊息:

由於目前你已經安裝32位元的office產品,因此無法安裝64位元版本的Microsoft Access Database Engine 2010,

若要安裝64位元的版本,請先除32位元的office產品

 

此時我們透過 cmd 安裝即可避免此問題,

首先開啟 「命令提示字元Cmd」,切換至安裝檔目錄底下:

AccessDatabaseEngine_X64.exe /passive

 

跳過一閃的執行畫面即為完成安裝!

 

 

參考資料:德瑞克:SQL Server 學習筆記

 

 

 

有勘誤之處,不吝指教。ob'_'ov