近日在windows 7 64位系统中编译以前写的程序,发现在连接Access数据库时总是出现异常,提示“Microsoft.Jet.OLEDB.4.0”未在本机注册,同样的代码在32位的xp系统中却没有问题,经过一番搜索后找到一个比较简便的处理办法,特在此做一下记录。
原因估计:数据库文件使用Access2003格式的*.mdb文件,其对应的OLEDB 4.0在win7 64位系统中支持不是很好。
处理办法:将数据库文件升级为Access2007格式的*.accdb文件,按如下修改连接字符串,其它代码不变。
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=;User ID=;Password=;
修改为
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=;User ID=;Password=;
注意本机还需要安装新版的数据中驱动文件:AccessDatabaseEngine.exe,此文件有32位和64位两个版本分别在本机安装即可,这样同样的代码就可以同时用于32位和64位两种平台了。