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

Internet Information Services 連接到 Microsoft Access 資料庫時遇到「使用 Microsoft.Jet.OLEDB.4.0 提供者並未登錄於本機電腦上」的錯誤訊息,可以嘗試電腦上是否安裝 Microsoft Access Database Engine 2010 可轉散發套件需要下載並安裝。確認連接字串中指定正確的資料庫檔案路徑和提供者名稱,確認應用程式和資料庫檔案都是使用相同的位元版本,例如 32 位元作業系統或 64 位元作業系統。

Microsoft.Jet.OLEDB.4.0 Provider is not registered on the local machine

例如使用 Windows 7 x64 版本的電腦上於 OLEDB 4.0 開發 Visual Studio .NET 的應用程式,發現會出現「Microsoft.Jet.OLEDB.4.0 提供者並未登錄於本機電腦上」的問題。

專案 屬性 建置 把平台目標的 Any CPU 改成 x86



方案組態 組態管理員 預設有「Debug」和「Release」兩種組態預設的平台「Any CPU」。修改為「x86」於「使用中的方案平台」下拉選單,選擇「新增」再於「新增專案平台」對方話塊中「輸入或選擇新平台」選「x86」。如果在 x64 平台上以 x86 方式執行程式,無法運用 x64 所特有的功能。



使用 Microsoft.Jet.OLEDB.4.0 讀取 Excel

讀取 Excel (97-2003)

當應用程式處於伺服器的 OLEDB.4.0 支持問題,讀取 Excel .xls 的檔案,且使用 .ASPX 的情況下嘗試一步步解析。

使用 Microsoft.Jet.OLEDB.4.0 讀取 Excel



Server.MapPath 數據庫相對路徑

數據庫相對路徑要把 DefaultAppPool 設為 32 位元模式。

開啟 IIS 7.532位元程式支援 ADODB.Connection

相關 System.Data.OleDb 命名空間

https://docs.microsoft.com/zh-tw/dotnet/api/system.data.oledb?redirectedfrom=MSDN&view=dotnet-plat-ext-6.0



Microsoft Access Database Engine 2010 可轉散發套件

Microsoft.ACE.OLEDB.12.0 for 64 bit system

傳輸 2010 Microsoft Office system 檔案和非 Microsoft Office 應用程式之間的資料。包含 Access 2010 (*.mdb, *.accdb) 檔案及 Excel 2010 (*.xls, *.xlsx, *.xlsb) 檔案的資料傳輸到其他資料來源。

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


執行階段錯誤 -2147217900 記憶體不足

資料庫中存入日文字元 使用具有 LIKE 子句的 SELECT 陳述式下造成執行階段錯誤 -2147217900 記憶體不足,嘗試從 ACEESS 裡面刪掉該筆紀錄,執行就正常,只要欄位中包含日文部份,就是會出現上面的錯誤訊息,找不到完整的方式只能暫且用 VBInStr 指令來比對過濾或替換成別的編碼。