You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

64位系统下Microsoft.Jet.OLEDB.4.0未注册错误求助

解决「Microsoft.Jet.OLEDB.4.0 未在本地机器上注册」错误方案

核心问题梳理

64位系统下,32位Office 2007与32位Access Database Engine 2010的兼容性配置未到位,导致OLEDB驱动无法正常调用。

具体解决步骤

1. 严格设置32位编译配置

  • 打开Visual Studio 2022,右键项目→属性→生成
  • 将「平台目标」设置为x86,取消勾选「首选32位」(若该选项存在)
  • 进入配置管理器,确认活动解决方案平台和对应项目的平台均设置为x86

2. 替换正确的OLEDB驱动连接字符串

  • 弃用Microsoft.Jet.OLEDB.4.0或Microsoft.Jet.OLEDB.10.0,改用Access Database Engine 2010对应的Microsoft.ACE.OLEDB.12.0驱动
  • 示例连接字符串:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=你的数据库文件路径.mdb;Persist Security Info=False;

3. 重新安装Access Database Engine 2010(被动模式)

  • 先彻底卸载已安装的Access Database Engine 2010(控制面板→程序和功能)
  • 以管理员身份打开命令提示符,找到安装包路径,执行被动安装命令:
AccessDatabaseEngine.exe /passive

被动安装模式可避免与已有的32位Office组件冲突。

4. 验证驱动注册状态

  • 按下Win+R输入regedit打开注册表编辑器
  • 导航到路径:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Access Connectivity Engine\Engines\ACE
  • 若能找到该路径,说明32位ACE驱动已成功注册

5. 完善代码的异常处理与资源管理

  • 使用using语句自动释放数据库连接资源,同时捕获完整错误信息排查问题:
try
{
    using (OleDbConnection OledbConn = new OleDbConnection(connString))
    {
        OledbConn.Open();
        var sheetNames = OledbConn.GetSchema("Tables");
        // 后续业务逻辑
    }
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString()); // 输出完整错误栈,定位具体问题
}

内容的提问来源于stack exchange,提问作者Fresher Developer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 08:47:25