创建受密码保护的Access数据库

时间:2010-07-30 15:42:06

标签: c# ms-access

将Visual Studio 2010与C#WPF项目一起使用。我知道如何使用ADOX命名空间创建Access 2000-2003 db文件。

ADOX.CatalogClass cat = new CatalogClass();
string str = "provider=Microsoft.Jet.OleDb.4.0;Data Source=" + _dbPath + ";";
cat.Create(str);
cat = null;

连接并打开数据库:

conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" 
       + _dbPath + ";");

//connect to it with a password
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + _dbPath + ";User Id=admin;Password=myPassword;"

我想创建受保护的文件密码:

ADOX.CatalogClass cat = new CatalogClass();
string str = "provider=Microsoft.Jet.OleDb.4.0;Data Source=" 
+ _dbPath + ";Password=myPassword;";
cat.Create(str);
cat = null;

这会在运行时产生错误:

  

无法启动您的应用程序。工作组信息文件丢失或由其他用户独占打开。

当我在没有密码的情况下创建时,数据库已成功创建。

如何使用此策略创建受密码保护的Access数据库?

1 个答案:

答案 0 :(得分:1)

如果您指的是数据库密码,而不是需要工作组文件的用户级安全性,则可以更改连接字符串以包含:

 Jet OLEDB:Database Password=MyDbPassword;

那是:

ADOX.Catalog cat = new CatalogClass();
string str = "provider=Microsoft.Jet.OleDb.4.0;Data Source=" 
+ _dbPath + ";Jet OLEDB:Database Password=MyDbPassword;";
cat.Create(str);
cat = null;

- http://www.connectionstrings.com/access

使用此处的信息:http://support.microsoft.com/kb/317881,稍作修改:

ADOX._Catalog cat = new ADOX.Catalog();

cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=PW;" +
       "Data Source=C:\\Docs\\NewMDB.mdb;");

我发现我可以创建一个受密码保护的Access数据库。