在 C# 问题中访问受密码保护的 MS 访问数据库

Posted

技术标签:

【中文标题】在 C# 问题中访问受密码保护的 MS 访问数据库【英文标题】:Accessing a password protected MS access database in C# issue 【发布时间】:2014-05-29 14:55:06 【问题描述】:

我正在尝试使用 DAO 在 C# 中连接受密码保护的数据库。我之前在未受保护的数据库中正常工作的代码。现在,当尝试通过添加默认密码连接到数据库时,它不起作用。

    var dbe = new DBEngine();
    dbe.DefaultPassword = "abc123";
    Database db = dbe.OpenDatabase(@"C:\Users\x339\Documents\Test.accdb");

我得到错误: '无法启动您的应用程序。工作组信息文件丢失或被其他用户独占打开。 我不确定我在哪里出错了。任何帮助,将不胜感激。

【问题讨论】:

【参考方案1】:

好吧,我不建议再使用 DAO,但如果必须,请使用以下代码:

var dbe = new DBEngine();
var databaseFile = @"C:\Users\x339\Documents\Test.accdb";
var password = "abc123";
Database db = dbe.OpenDatabase(databaseFile, False, False, string.Format("MS Access;PWD=0", password));

【讨论】:

+1 获取有关方法的建议。使用 OleDb...见:msdn.microsoft.com/en-us/library/… 完美运行,谢谢。在我接受答案之前,您为什么建议反对 DAO?你能链接到一些替代品吗?如果可能的话和文档。 好吧,我首先要问的是,当 SQL Express 免费时,您是否真的需要使用 Access。

以上是关于在 C# 问题中访问受密码保护的 MS 访问数据库的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中访问 Windows 中受密码保护的网络驱动器?

C# 中实例成员的受保护访问? [复制]

在 C# 中,我们可以对接口使用受保护的访问修饰符吗?

我可以在 Swift 中获得与 C# 的“受保护”访问类似的最终结果吗?

除了这样,为啥我不能访问受 C# 保护的成员?

通过基类变量访问的 C# 受保护成员 [重复]