64位系统使用Access 数据库文件的彻底解决方法
最近,有PDF.NET用戶問我怎么在64位系統(tǒng)下無法訪問Access數(shù)據(jù)庫的問題,我第一反應(yīng)是我怎么沒有遇到呢?今天一看自己的VS和Office都是32位版本的,所以在VS里面調(diào)試訪問Access是沒有問題的,但是直接使用編譯好的.NET程序訪問Access,就出問題了,報(bào):
????未在本地計(jì)算機(jī)上注冊“Microsoft.Jet.Oledb.4.0”提供程序。
????于是,又在公司的電腦上(Win7 64位)做了實(shí)驗(yàn),發(fā)現(xiàn)跟家里面的Win8.1 64位 問題一樣,上網(wǎng)搜索了一下,大部分都建議將.NET程序編譯的時(shí)候,目標(biāo)平臺(tái)設(shè)定為 x86 ,我試了下,果然成功。
????但是,如果你的.NET程序是別人編譯好的,且在64位系統(tǒng)上運(yùn)行,要訪問Access數(shù)據(jù)庫,怎么辦呢?
????首先想到,看能否通過應(yīng)用程序配置文件,將.NET程序配置成運(yùn)行在 32位 系統(tǒng)下,找了很久資料,無果,放棄。
????再想想,是不是跟自己的Office是32位有關(guān)呢?
????關(guān)鍵問題不在于是Access 2010還是Access 2013而已,不必鉆牛角尖,何不求其次,安裝一個(gè)Access 2007/2010的Database Engine不就行了。
?
解決辦法:
①???下載安裝Microsoft Access Database Engine 2010 Redistributable(28MB),共有32bit(下載)和64bit(下載)兩個(gè)版本,具體要安裝哪個(gè)要看你的Office程序是32bit的還是64bit的,比如:我的PC是64bit的Win8 Pro,但是我Office的程序是32bit的,所以我應(yīng)當(dāng)安裝AccessDatabaseEngine.exe(32bit);
②???打開你的.NET應(yīng)用程序配置文件(應(yīng)用程序名.config,Web應(yīng)用程序?yàn)?Web.config),設(shè)置數(shù)據(jù)庫連接字符串的Provide Microsoft.ACE.OLEDB.12.0,例如標(biāo)準(zhǔn)連接字符串為:"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Data.accdb;Persist Security Info=False;"
再次運(yùn)行程序,OK,數(shù)據(jù)庫連接成功,一切正常。
注意:64位系統(tǒng)下一定要修改提供程序?yàn)?Microsoft.ACE.OLEDB.12.0,而此時(shí)的文件名,可以是 早期的 mdb文件,也可以是新的 accdb 文件。
????????如果你雖然是64位系統(tǒng),但是你的Office 是32位的,所以你只能安裝32位的ACE驅(qū)動(dòng),因此你的.NET應(yīng)用程序也只能發(fā)布成32位的,如果編譯成anycpu版本,還是無法訪問ACE。
????????(PS:如果你發(fā)布成x86格式的目標(biāo)平臺(tái),并且不想使用accdb格式的Access數(shù)據(jù)庫文件,那么就不必安裝上面的32位ACE驅(qū)動(dòng)了,省得折騰:-《)
?注意:
??????如果你安裝了 64位的Access程序,但是在VS2013中調(diào)試Web網(wǎng)站應(yīng)用程序的時(shí)候,提示“Microsoft.ACE.OLEDB.12.0” 未注冊,請?jiān)赩S的選項(xiàng)中,項(xiàng)目和解決方案,Web項(xiàng)目,勾選64位的 IIS Express 。
?
如何在不刪除32位Office的情況下安裝AccessDataEngine64位
時(shí)間:2017-09-01 15:24作者:南方數(shù)碼虎妞閱讀:7279評論:12
由于某些64位應(yīng)用程序需要訪問Access數(shù)據(jù)庫,而訪問數(shù)據(jù)庫須使用AccessDataEngine即Access數(shù)據(jù)庫引擎64位。而正常情況下,如果有32位Office安裝在系統(tǒng)中,AccessDataEngine64位將會(huì)提示無法安裝,如圖:
解決方法:
一、打開控制臺(tái)cmd
win7打開【開始菜單--所有程序—附件—“命令提示符號(hào)”】
Win8打開應(yīng)用中的“命令行提示符”。
???
或直接Windows徽標(biāo) + R 后輸入cmd再回車。
二、找到64位Access數(shù)據(jù)引擎的目錄
如64位Access數(shù)據(jù)引擎位置在D:SoftwareaccessDataEngine下。
(使用‘cd’命令跳轉(zhuǎn)至該目錄)
?
三、調(diào)用安裝文件,追加參數(shù) /passive。
例如"D:SoftwareaccessDataEngineAccessDatabaseEngine_x64.exe"/passive
加入了[/passive]參數(shù)后,64位Access數(shù)據(jù)引擎安裝就不再檢查32位Office是否已安裝,而可直接安裝。
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的64位系统使用Access 数据库文件的彻底解决方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈 CSRF 攻击方式
- 下一篇: SpringMVC 注解 : @Mode