我的C#winforms程序工作是关于数据库访问2007
这个数据库变得肿胀。
有没有办法用C#代码压缩和修复这个数据库?
如果我手动(通过访问)它变得不那么肿了
提前谢谢
答案 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));