office交流网--QQ交流群号

Access培训群:792054000         Excel免费交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

.net程序无法访问64位系统中的Access 数据库的解决办法

2021-01-28 08:00:00
海角之上
转贴
3950

作者:海角之上
www.cnblogs.com/sky6699/p/6065636.html

使用.net程序访问access时,提示“未在本地计算机上注册 Microsoft.Jet.Oledb.4.0提供程序。”错误

这个错误可能是因为在64位系统中,.编译好NET程序无法直接访问的access数据库。


解决办法:


1. 下载装Access Database Engine

下载安装Microsoft Access Database Engine 2010 Redistributable(28MB),有32位(下载)和64位(下载)两个版本,具体要安装哪个要看你的Office程序是32位的还是64位的,如果你的PC是64位的Win10,但是Office的程序是32位的,那么应当安装AccessDatabaseEngine.exe(32位);


2. 修改配置信息

打开你的.NET应用程序配置文件(应用程序名.config,Web应用程序为 Web.config),设置数据库连接字符串的Provide Microsoft.ACE.OLEDB.12.0,例如标准连接字符串为:"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Data.accdb;Persist Security Info=False;"

注意:64位系统下一定要修改提供程序为 Microsoft.ACE.OLEDB.12.0,而此时的文件名,可以是 早期的 mdb文件,也可以是新的 accdb 文件。 如果你是64位系统,但是你的Office 是32位的,所以你只能安装32位的ACE驱动,因此你的.NET应用程序也只能发布成32位的。


3. 目标平台设定为 x86

如果你发布成x86格式的目标平台,并且不想使用accdb格式的Access数据库文件,那么就不必安装上面的32位ACE驱动了



值得注意的是如果你安装了 64位的Access程序,但是在VS2013中调试Web网站应用程序的时候,提示“Microsoft.ACE.OLEDB.12.0” 未注册,请在VS的选项中,项目和解决方案,Web项目,勾选64位的 IIS Express 。

分享