如何压缩&通过C#代码修复数据库访问2007?

时间:2010-08-02 19:07:46

标签: winforms ms-access-2007

我的C#winforms程序工作是关于数据库访问2007

这个数据库变得肿胀。

有没有办法用C#代码压缩和修复这个数据库?

如果我手动(通过访问)它变得不那么肿了

提前谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用command line/compact msaccess.exe参数,或者您可以使用互操作,并执行我在代码项目中找到的Compact And Repair之类的内容。

使用MS Access命令行的C#示例...

var mdbFileName = Path.GetFullPath("youraccessdb.mdb");
if (!File.Exists(mdbFileName))
    throw new FileNotFoundException(
        "Could not find Access Database",
        mdbFileName);

var programFiles = Environment.GetEnvironmentVariable("ProgramFiles");
var accessPath = Path.Combine(
                    programFiles,
                    @"Microsoft Office\Office12\MSACCESS.EXE");

if (!File.Exists(accessPath))
    throw new FileNotFoundException(
        "Could not find MSACCESS.EXE",
        accessPath);

var commandArgs = string.Format("/compact \"{0}\"", mdbFileName);

var process = Process.Start(accessPath, commandArgs);
process.WaitForExit();

if (process.ExitCode != 0)
    throw new ApplicationException(string.Format(
        "Access Exited with Error Code [{0}]",
        process.ExitCode));