2010年4月8日 星期四

Microsoft.Jet.OLEDB.4.0 提供者並未登錄於本機電腦上

最近開發的一支 .NET程式,使用OLEDB 4.0去開啟Excel檔

但發現一個問題

該程式執行於Windows 7 x64版本的電腦上

會出現「Microsoft.Jet.OLEDB.4.0' 提供者並未登錄於本機電腦上」的問題

錯誤訊息如下圖:

clip_image002

其原因是:Microsoft Jet 沒有支援 64 位元的版本的Driver

解決方式:

不要將 .NET應用程式編譯為 64 位元(x64)或「Any CPU」(預設值) 的應用程式

而必須編譯為 32 位元(x86)的應用程式,才可以使用 Microsoft Jet

請參考:http://social.msdn.microsoft.com/Forums/zh-TW/238/thread/c55decf8-53a4-4c82-8aa3-d9f3e6c627c0

若使用Visual Studio,請在方案總管中的專案節點上按右鍵,然後選擇「屬性」以打開專案屬性視窗

請點選左方的「建置」頁籤,然後在平台目標旁的下拉方塊中,選擇「x86」,如下圖:

clip_image004

然後再編譯你的程式,你的程式應該就可正常執行。