检测计算机上是否安装了Microsoft Access以及Microsoft Access的版本c#

时间:2014-11-04 11:20:52

标签: c# ms-access

客户已要求我制作销售点系统,并且我一直在使用本地数据库(Microsoft Access 2010)。

所以,我一直在想这个问题:如果计算机上安装了Microsoft Access以及哪个版本,应用程序如何检测?

3 个答案:

答案 0 :(得分:5)

如果我没记错的话,如果你想要的只是从C#访问数据库文件mdb / accdb,你真的不需要在你的系统上安装Access。您需要拥有的是ODBC或OLEDB驱动程序;可以从Microsoft免费下载。我认为最新版本的Windows已安装它们但我不确定,因为我的所有系统都安装了Access,所以我无法验证。

但是,如果您想将此作为销售点系统的基础,那么这不是一个好主意,因为Access过于不安全,容易出现损坏并且没有任何集成的备份机制。对于像POS这样重要的东西,使用SQL-Server应该被认为是最小的。

答案 1 :(得分:2)

单向(比特需要匹配):

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

答案 2 :(得分:1)

您可以使用RegistryKey类迭代密钥。

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

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