我已經被客戶請求創建一個銷售點系統,並且我一直在使用本地數據庫(Microsoft Access 2010)。檢測計算機上是否安裝了Microsoft Access和Microsoft Access c的版本號
所以,我一直在考慮這個問題:應用程序如何檢測計算機上是否安裝了Microsoft Access以及哪個版本?
我已經被客戶請求創建一個銷售點系統,並且我一直在使用本地數據庫(Microsoft Access 2010)。檢測計算機上是否安裝了Microsoft Access和Microsoft Access c的版本號
所以,我一直在考慮這個問題:應用程序如何檢測計算機上是否安裝了Microsoft Access以及哪個版本?
的一種方式(位數需要匹配):
Type Access = Type.GetTypeFromProgID("Access.Application");
if (Access != null)
{
dynamic access = Activator.CreateInstance(Access);
string ver = access.Version;
}
您可以使用RegistryKey類遍歷鍵。
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office");
foreach (String keyName in key.GetSubKeyNames())
.....
謝謝你的回答 – Kaoru 2014-11-04 11:44:49
如果我沒記錯,你並不真的需要有安裝在系統上訪問,如果你想要的是從C#訪問數據庫文件MDB/ACCDB。所有你需要的是一個ODBC或OLEDB驅動程序;免費從微軟下載。我認爲最新版本的Windows已經安裝了它們,但我不確定,因爲我的所有系統都安裝了Access,所以無法驗證。
但是,如果你想使用這個作爲銷售點系統的基礎,這將不是一個好主意,因爲Access太不安全,容易腐敗,沒有任何整合的備份機制。對於像POS一樣重要的事情,使用SQL-Server應該被認爲是最小的。
+1建議不要使用Access for POS。我想補充一點,即使SQL Server LocalDB比Access更好,並且考慮到SQL Server Express是免費的,您可以更好地轉換爲像以前那樣強大的功能,而不是後來承受後果。 – LightBulb 2014-11-04 11:36:24
謝謝大家,我會考慮在下一個項目中使用SQL。 +1 – Kaoru 2014-11-04 11:43:38
這是正確的。 Access不需要安裝另一個應用程序來使用Access數據庫文件。當C#安裝包建立時,它應該包含任何需要的引用。 – AVG 2014-11-04 13:37:42
謝謝先生,這就是我正在尋找的 – Kaoru 2014-11-04 11:43:55