如何使用C#将带有密码的.mdb文件转换为.accdb文件

时间:2019-01-10 19:37:39

标签: c# ms-access

我正在编写一个C#程序,除其他事项外,该程序还需要将受密码保护的.mdb Access数据库转换为受密码保护的.accdb文件。该函数看起来类似于:

public int M2AConvert( string password, string newPath, stringOldPath )

我现在拥有的代码是:

Microsoft.Office.Interop.Access.Application accessApp = new 
Microsoft.Office.Interop.Access.Application();
accessApp.Visible = true;
string sourceFile = oldPath;
string desFile = newPath;
accessApp.SysCmd((Microsoft.Office.Interop.Access.AcSysCmdAction)603, sourceFile, desFile);

这似乎不适用于受密码保护的文件,因此很可能是问题。
任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

在DbEngine中使用以下代码,以允许通过密码进行转换:

using Microsoft.Office.Interop.Access.Dao;
...
DBEngine daoEng = new DBEngine();
daoEng.CompactDatabase(dbNameSrc, dbNameDest, LanguageConstants.dbLangGeneral, dbVersion, pwd);

其中dbVersion是.mdb到.accdb的dbVersion120。可以使用其他dbVersion类型在.accdb和.mdb之间进行转换,但是请记住dbVersion40用于Jet 4.0,它是.mdb文件提供程序的最新版本。
此处列出了所有dbVersion转换类型:Microsoft Docs