我最近開發了一個winform項目,用的是access資料庫,當開發成功以後,有些電腦上就能正常運行,有些電腦就無法讀取資料庫文件,剛開始我以為是許可權問題,後來我把安裝程式卸載了,裝在其它盤中(非C盤),奇跡發生了,正常運行,但是我又在其它電腦上安裝不管是C盤還是其它盤都不行,後來我以為是電...
我最近開發了一個winform項目,用的是access資料庫,當開發成功以後,有些電腦上就能正常運行,有些電腦就無法讀取資料庫文件,剛開始我以為是許可權問題,後來我把安裝程式卸載了,裝在其它盤中(非C盤),奇跡發生了,正常運行,但是我又在其它電腦上安裝不管是C盤還是其它盤都不行,後來我以為是電腦上沒有安裝ACCess的問題。後來我安裝了ACCESS,也安裝了Microsoft Data Access Components ,但是還是不行。
後來我寫了一個日誌,看看了日誌
也就是說,不是我系統的問題,而是數據源的問題。
那麼既然是數據源的問題,我覺得還是從我的開發環境開始解決。 那麼我的開發環境安裝的是2010的access,而運行環境是2007和2013的。其實區別就在於版本不同。後來我就有一個疑問,如果用access資料庫做開發,難道說運行環境必須要安裝對應的Office嗎?我網上找了一些資料,後來發現,其實在客戶端我們其實是不需要安裝office的,只需要安裝一個ODBC的數據源驅動即可。(因為之前一直在用sql和oracle,相對於access是比較少的。所以這次遇到問題,雖然有點基礎,但是還是讓我有點小鬱悶)
但是我之前確實安裝過了,AccessDatabaseEngine但是一直也沒有什麼卵用,一直不知道什麼原因,在網上找了很多,大多是兩個版本,第一個說的是,需要安裝對應的office,第二個版本是不需要安裝office,但是必須要安裝一個ODBC的數據源驅動。其實從一開始我就不贊同第一種方案,因為我不可能讓沒有用戶都去安裝一個office,如果小的話還行,但是每一個最起碼要1個多GB,這樣太不現實。那麼第二個方案真不知道哪裡出了問題,一直沒有什麼頭緒,後來我寫了一個日誌,報出來的錯誤就是“無法識別資料庫格式“.accdb”",後來在office的官網上無意中發現一個問題,其實AccessDatabaseEngine也是有版本的,其中有Microsoft Access Database Engine 2007 Redistributable,Microsoft Access Database Engine 2010 Redistributable,Microsoft Access Database Engine 2010 Redistributable_X64等,後來我按照我本地的開發環境,下載了一個Microsoft Access Database Engine 2010 Redistributable後來奇跡終於發生了。
雖然只是些基礎的知識,希望對大家有用。