使用 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 指令来比对过滤或替换成别的编码。