[C#] 解決'Microsoft.ACE.OLEDB.12.0' 提供者並未登錄於本機電腦...

Microsoft Access Database Engine 2010

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

 

之前資料轉換,都是利用SSIS,在特定時間,將USER做好的excel資料轉入資料庫。

但是最近有些資料希望能夠及時被更新,因此在考量開發時間與作業習慣的情況下,決定採用開發WEB介面讓USER自己將Excel資料上傳並轉入資料庫中。

程式開發完畢本機測試沒有問題,將Web發佈上去,再重新測試時......出現了以下錯誤

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

原因是Server上沒有安裝Access Database Engine 2010 的驅動程式。

解法很簡單

到微軟網站下載"Microsoft Access Database Engine 2010 可轉散發套件",並安裝於Server上就可以了.....官網連結載點

Server的環境是Server 2008 32Bit的版本... 所以直接下載安裝的 AccessDatabaseEngine.exe...

裝完後.....還是出現....

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

原來是使用者的呼叫環境是(Win 7 X64),所以要一併將 64位元的版本裝上去.....

重新下載..AccessDatabaseEngine_X64.exe 執行安裝。

卻出現 由於目前你已經安裝32位元的office產品,因此無法安裝64位元版本的Microsoft Access Database Engine 2010,若要安裝64位元的版本,請先除32位元的office產品

布拉不拉的說明.......(這下慘了.....)

還好德瑞克大師 (參考聯結) 有提到如何解決此窘境...

若要將 64 位元與 32 位元版本的 Access Database Engine 2010 驅動程式,安裝在同一作業系統上,可以使用以下的方式:

在命令列提示列中,執行:

AccessDatabaseEngine_X64.exe /passive

就可以完成安裝!!

感謝所有前輩提供的解法,自己留作紀錄.....謝謝!!!
 

 

水滴可成涓流,涓流可成湖泊大海。
汲取累積知識,將知識堆積成常識;將常識探究成學識;將學識簡化為知識;授人自省。