我正在尝试的是在不实际打开数据库的情况下访问 MS Access 属性。
这里有一些代码可以更好地理解:
var processStartInfo = new ProcessStartInfo(args[0])
{
WindowStyle = ProcessWindowStyle.Hidden,
CreateNoWindow = true
};
Process.Start(processStartInfo);
application = (Access.Application)Marshal.GetActiveObject("Access.Application");
dao.Property allowByPassKeyProperty = null;
foreach (dao.Property property in application.CurrentDb().Properties)
{
if (property.Name == "AllowByPassKey")
{
allowByPassKeyProperty = property;
break;
}
}
我的问题是,在这种情况下,我打开数据库以查找属性 (application.CurrentDb().Properties),然后 MS Access 启动内容就会启动。
我想避免所有启动的东西,只为属性注入正确的价值。
是否有可能通过这些属性,也许像这样的反射和后期绑定:http: //www.codeproject.com/KB/database/mdbcompact_latebind.aspx?
或者还有其他选择可以实现我想要的吗?