2014-11-04 78 views

回答

1

的一種方式(位數需要匹配):

Type Access = Type.GetTypeFromProgID("Access.Application"); 
if (Access != null) 
{ 
    dynamic access = Activator.CreateInstance(Access); 
    string ver = access.Version; 
} 
+0

謝謝先生,這就是我正在尋找的 – Kaoru 2014-11-04 11:43:55

1

您可以使用RegistryKey類遍歷鍵。

RegistryKey key = Registry.LocalMachine.OpenSubKey(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office"); 

foreach (String keyName in key.GetSubKeyNames()) 
..... 
+0

謝謝你的回答 – Kaoru 2014-11-04 11:44:49

4

如果我沒記錯,你並不真的需要有安裝在系統上訪問,如果你想要的是從C#訪問數據庫文件MDB/ACCDB。所有你需要的是一個ODBC或OLEDB驅動程序;免費從微軟下載。我認爲最新版本的Windows已經安裝了它們,但我不確定,因爲我的所有系統都安裝了Access,所以無法驗證。

但是,如果你想使用這個作爲銷售點系統的基礎,這將不是一個好主意,因爲Access太不安全,容易腐敗,沒有任何整合的備份機制。對於像POS一樣重要的事情,使用SQL-Server應該被認爲是最小的。

+0

+1建議不要使用Access for POS。我想補充一點,即使SQL Server LocalDB比Access更好,並且考慮到SQL Server Express是免費的,您可以更好地轉換爲像以前那樣強大的功能,而不是後來承受後果。 – LightBulb 2014-11-04 11:36:24

+0

謝謝大家,我會考慮在下一個項目中使用SQL。 +1 – Kaoru 2014-11-04 11:43:38

+0

這是正確的。 Access不需要安裝另一個應用程序來使用Access數據庫文件。當C#安裝包建立時,它應該包含任何需要的引用。 – AVG 2014-11-04 13:37:42