需要在工程中引用COM组件: Microsoft Jet and Replication Objects Library ,示例请参考下面的函数:
public static bool CompactJetDatabase(string fileName) { // I use this function as part of an AJAX page, so rather than throwing // exceptions if errors are encountered, I simply return false and allow the page // to handle the failure generically. try { if (fileName.Equals("")) return false;
string oldFileName = fileName;
// 创建一个生成后的临时文件 string newFileName = Path.Combine(Path.GetDirectoryName(oldFileName), Guid.NewGuid().ToString("N") + ".mdb");
// 创建压缩类 JetEngineClass engine = new JetEngineClass(); // 压缩MDB为新的文件 engine.CompactDatabase( String.Format(AccessOleDbConnectionStringFormat, oldFileName), String.Format(AccessOleDbConnectionStringFormat, newFileName));
// 删除旧文件 File.Delete(oldFileName);
// 改名为旧文件名. File.Move(newFileName, oldFileName);
return true; } catch (Exception ex) {
return false; } }
原文出处: http://www.codeproject.com/useritems/CompactAndRepair.asp
|
请发表评论