使用 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
当应用程式处于伺服器的 OLEDB.4.0 支持问题,读取 Excel .xls 的档案,且使用 .ASPX 的情况下尝试一步步解析。
Server.MapPath 数据库相对路径
数据库相对路径要把 DefaultAppPool 设为 32 位元模式。
开启 IIS 7.5 中32位元程式支援 ADODB.Connection
相关 System.Data.OleDb 命名空间
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 里面删掉该笔纪录,执行就正常,只要栏位中包含日文部份,就是会出现上面的错误讯息,找不到完整的方式只能暂且用 VB 的 InStr 指令来比对过滤或替换成别的编码。