64位系统使用Access数据库文件的彻底解决方法

最近,有PDF.NET用户问我怎么在64位系统下无法访问Access数据库的问题,我第一反应是我怎么没有遇到呢?今天一看自己的VS和Office都是32位版本的,所以在VS里面调试访问Access是没有问题的,但是直接使用编译好的.NET程序访问Access,就出问题了,报:

未在本地计算机上注册“Microsoft.Jet.Oledb.4.0”提供程序。

于是,又在公司的电脑上(Win7 64位)做了实验,发现跟家里面的Win8.1 64位问题一样,上网搜索了一下,大部分都建议将.NET程序编译的时候,目标平台设定为x86,我试了下,果然成功。

但是,如果你的.NET程序是别人编译好的,且在64位系统上运行,要访问Access数据库,怎么办呢?

首先想到,看能否通过应用程序配置文件,将.NET程序配置成运行在32位系统下,找了很久资料,无果,放弃。

再想想,是不是跟自己的Office是32位有关呢?

关键问题不在于是Access 2010还是Access 2013而已,不必钻牛角尖,何不求其次,安装一个Access 2007/2010的Database Engine不就行了。

解决办法:

①下载安装Microsoft Access Database Engine 2010 Redistributable(28MB),共有32bit(下载)和64bit(下载)两个版本,具体要安装哪个要看你的Office程序是32bit的还是64bit的,比如:我的PC是64bit的Win8 Pro,但是我Office的程序是32bit的,所以我应当安装AccessDatabaseEngine.exe(32bit);

②打开你的.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;"

再次运行程序,OK,数据库连接成功,一切正常。

注意:64位系统下一定要修改提供程序为Microsoft.ACE.OLEDB.12.0,而此时的文件名,可以是早期的mdb文件,也可以是新的accdb文件。

如果你虽然是64位系统,但是你的Office是32位的,所以你只能安装32位的ACE驱动,因此你的.NET应用程序也只能发布成32位的,如果编译成anycpu版本,还是无法访问ACE。

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

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

总结: 64位系统下.NET访问Access 数据库,最彻底的方法是安装64位的Access数据访问驱动安装程序 并使用新的Access提供程序  Microsoft.ACE.OLEDB.12.0。

64位系统使用Access数据库文件的彻底解决方法相关推荐

  1. 64位系统使用Access 数据库文件的彻底解决方法

    最近,有PDF.NET用户问我怎么在64位系统下无法访问Access数据库的问题,我第一反应是我怎么没有遇到呢?今天一看自己的VS和Office都是32位版本的,所以在VS里面调试访问Access是没 ...

  2. 64位系统使用Access 数据库文件遇到的错误和解决办法

    64位系统中使用32位的Access数据源遇到的问题和解决办法 win32com.client使用不对应的Access数据源可能有以下错误 "C:\Program Files\Python3 ...

  3. win7 64位系统安装office2013后图标显示不正常解决方法

    #win7 64位系统安装office2013后图标显示不正常解决方法# 1 下载filetypesman,软件为绿色版,不用安装,可直接打开使用 2 查看Word.Excel.PPT的安装位置,后边 ...

  4. ADOLISP在64位系统上读取数据库的解决办法

    第一步:确认64位系统上安装了64位的access驱动.安装office2010的64位版本或者去微软平台下载Access 2010的64位驱动(AccessDatabaseEngine_X64.ex ...

  5. 关于Windows 7 64位系统 HP M1319f 打印机无法扫描的解决办法

    此办法主要针对Windows7 64位系统的用户,对于Xp系统或者Windows8系统没有验证. 笔者在将电脑重装成win7 64位系统后在安装hp打印机驱动的时候打印机自带的驱动盘提示不支持64位系 ...

  6. 64位进程隐藏不蓝屏_浅析Linux 64位系统虚拟地址和物理地址的映射及验证方法...

    前言 有好久没更新了,这段时间发生了挺多大喜事哈.但是也还是有挺久没更新了,不得不意识到自己是个小菜鸡,就算是小菜鸡也要做一只快乐小菜鸡.就算更新慢但是我依然会持续更新,因为更文使我快乐. 虚拟内存 ...

  7. Ubuntu 64位系统下无法开启wineQQ7.8的解决办法

    Ubuntu 64位系统下载安装wineQQ7.8后并不能直接打开,原因是wineQQ是32位的,而64位系统默认没安装32位库. 解决办法: 在终端下执行:sudo apt-get install ...

  8. win7如何开计算机端口,win7旗舰版64位系统快速开启计算机端口的两种方法

    不知道大家对于 win7系统 计算机端口的了解有多少,PConline的小编先跟大家普及一下,所谓的计算机"端口"是英文port的义译,可以认为是计算机与外界通讯交流的出口.分软件 ...

  9. dll文件是什么语言编写的_Win7系统当中libeay32.dll文件丢失的解决方法是什么?...

    Win7系统libeay32.dll文件丢失应该如何解决?有不少用户在打开电脑运行游戏的时候却会出现"libeay32.dll文件丢失"的提示,用了很多方法却还是无法解决,那么该问 ...

最新文章

  1. codeforces 贪心+优先队列_贪心(贪婪),在你们家乡话中怎么说·
  2. R语言实战应用精讲50篇(二十五)-时空数据统计模型:确定性预测模型
  3. 超级大汇总!200多个最好的机器学习、NLP和Python教程
  4. 30336控制转移指令
  5. 一张图看程序媛阿源的2021个人年度流水账
  6. java 实现按规则自增功能_java运算符详解 - osc_74vaali6的个人空间 - OSCHINA - 中文开源技术交流社区...
  7. System.Drawing.Color转System.Windows.Media.Color
  8. Vue method与computed的区别
  9. mysql 5.1.6 安装包_Centos6 离线安装 MySQL5.5.55-1(附带安装包及 Perl 依赖包)
  10. Python学习笔记—Dict和set
  11. Win7 关闭触摸屏 屏幕键盘功能
  12. Hinton NIPS2017 手写识别实现 TensorFlow \ Pytorch \ Keras
  13. Kali Linux 安装Nvidia显卡驱动(二)CUDA, Pyrit and Cpyrit-cuda
  14. Python并发编程系列之多线程
  15. 51单片机DS18B20温度报警器
  16. win2008找不到无线网络
  17. linux系列(十):shell循环结构、for、while
  18. 【Pygame小游戏】“史上最炫酷贪吃蛇”驾到,FUN开玩(不好玩不要钱)
  19. WiFi AuthenticationOmnipeek抓包分析
  20. 很全面的视频编码格式表

热门文章

  1. 前后端分离 与 不分离
  2. 说说a标签的onclick和href
  3. python 的列表遍历删除
  4. DotNetBar.Bar图标列表的使用
  5. 网格分割后,边界点的获取方法
  6. meta几个常用的地方
  7. wxPython--学习笔记(一)
  8. Linux之touch命令
  9. Java并发线程之线程池
  10. Android:文件读写.