欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

System.InvalidOperationException:“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序

发布时间:2025/3/20 编程问答 37 豆豆
生活随笔 收集整理的这篇文章主要介绍了 System.InvalidOperationException:“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

【写在前面】
今天在做c#和ACCESS的连接测试时出现了如下图的BUG:
(本人VS为2017,access为2016 64位专业版)
CODES:

  • 报错提示

  • error location

    【原因分析】
    这个错误的根本原因就是应用程序(32 位代码)和与 64 位 Microsoft Access 一同安装的 64 位 ACE 提供程序之间的版本不匹配,造成了错误“’Microsoft.ACE.OLEDB.12.0’ 提供程序未在本地计算机上注册”。

    **知识点延伸:**
    • 共同点:所有都是连接到Excel对象的接口引擎
    • 不同点:
      1)对于不同版本的zhiExcel,有两个接口可供选择:daoMicrosoft.Jet.OLEDB.4.0(以下简称Jet引擎)和microsoft.ace.oledb.12.0(以下简称ACE引擎)。Jet引擎可以访问office 97-2003,但是你无法
      访问office 2007。ACE引擎是与Office 20,071一起发布的数据库连接组件,您可以访问Office 2007或Office 97-2003。
      2)microsoft.ace.oledb.12.0可以访问正在打开的Excel文件,而microsoft.jet.oledb.4.0是不可能的。因此,在使用不同版本的Office时,请注意使用正确的引擎。
  • 扩展资料:

    从2007版本开始,Access包含特定于Office的Jet版本,最初称为Office Access连接引擎(ACE),但现在称为Access数据库引擎。此引擎完全向后兼容以前版本的Jet引擎,因此它从早期的Access版本读取和写入(.mdb)文件。它引入了一种新的默认文件格式(.accdb),它为Access带来了一些改进,包括复杂数据类型,如多值字段,附件数据类型和备注字段中的历史记录跟踪。它还带来了安全性和加密性改进,并支持与Microsoft Windows SharePoint Services 3.0和Microsoft Office Outlook 2007的集成。

    **【解决方案】**

    1.下载office驱动程序,安装数据连接组件(官网下载链接)
    https://www.microsoft.com/en-us/download/details.aspx?id=54920
    (本人下载的连接:)
    2.将 ConnectionString 属性的 Provider 参数设置为“Microsoft.ACE.OLEDB.16.0”如果要连接到 Microsoft Office access 数据,如果有问题的可以参考我下面的代码修改一下。

    3.在运行框用inetmgr命令打开IIS管理器,选择该应用程序的应用程序池——>高级设置——>启动32位应用程序——>true

    【ps】有些童鞋的IIS可能没打开,在管理工具中找不到,不要紧,下面介绍一下IIS的打开方式
    https://jingyan.baidu.com/article/ac6a9a5e36977d2b653eacb2.html

    原文链接:https://blog.csdn.net/YYZZHC999/article/details/79367114

    总结

    以上是生活随笔为你收集整理的System.InvalidOperationException:“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。