我做了一個連接到Access數據庫(.mdb文件)的小應用程序。其他想要使用我的應用程序的用戶還需要安裝Microsoft Access嗎?如果是這種情況,有沒有辦法通過用戶安裝一些免費包來解決這個需求?幫助部署連接到Access數據庫的C#應用程序
我已經研究了一段時間,似乎無法得到任何答案。任何幫助深表感謝。
我做了一個連接到Access數據庫(.mdb文件)的小應用程序。其他想要使用我的應用程序的用戶還需要安裝Microsoft Access嗎?如果是這種情況,有沒有辦法通過用戶安裝一些免費包來解決這個需求?幫助部署連接到Access數據庫的C#應用程序
我已經研究了一段時間,似乎無法得到任何答案。任何幫助深表感謝。
根據您使用的MS Access版本,您需要安裝適當版本的Microsoft Jet引擎。對於較早的Access數據庫,Jet Engine隨附MDAC,但最近它是removed from the MDAC distribution。這是一個包含MS Access 2007可再發行的鏈接的博客:Access Database Engine Redistributable。如果您使用不同版本的Access,請查找不同的可再發行組件。
嘗試從MS下載新的2010 Access database可再發行組件。也可以在64位上工作。
沒有人明確回答你的問題。如果您使用的是MDB格式,則不需要分發Access,因爲Jet 4安裝在Windows 2000以上的所有Windows副本上。
但是,如果要編譯32以外的內容您將遇到問題,在這種情況下,您需要下載爲Access 2010 64位創建的64位Jet/ACE版本,並將其包含在您的應用中。
我實際上在連接到我的.mdb數據庫時仍然有問題。我正在從未安裝Access的32位機器進行測試。如果Jet 4默認安裝在所有副本上,這使我認爲我的應用程序應該直接開箱即用。我也嘗試下載Access Runtime,但這也沒有幫助。我想連接到數據庫的錯誤是有關未經認證的.mdb文件的安全問題。我還沒有完全解決這個問題。 – j3st 2010-07-22 08:37:14
那麼,你可以發佈你的連接字符串。在安全性方面,儘管A2003中存在「宏觀安全」(另一個「安全劇場」品牌),但Jet 4並沒有A2007中引入的「可信位置」概念,但與Jet db引擎無關。有三個安全問題:NTFS文件權限,Jet用戶級安全性和數據庫密碼。最後一個是毫無價值的,如果有一個數據庫密碼,你應該刪除它,因爲它沒有任何用處。 – 2010-07-22 17:36:48
我的連接字符串是:「Provider = Microsoft.Jet.OLEDB.4.0; Data Source = \」somedb.mdb \「」。我不確定這對你有多大幫助。我在數據庫上沒有密碼,文件權限不應該是問題... – j3st 2010-07-24 07:42:46
感謝您的快速響應 - 這正是我一直在尋找的。 – j3st 2010-07-20 06:04:24
Jet從MDAC中刪除的原因是因爲Jet 4是從Windows 2000開始的操作系統的一部分(它由Active Directory使用)。情況仍然如此。目前的主要侷限是Jet 4只有32位。 – 2010-07-20 17:15:54