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



我正在编写一个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);

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

使用带有以下代码的 DbEngine 来允许使用密码进行转换:

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

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

文档

最新更新