在c#中实现对access数据库mdb文件的压缩和修复有多种方法,本文介绍通过jro(Microsoft Jet and Replication Objects Library) com组件实现的方法。
首先要在c#的项目中引用jro的com 组件 Microsoft Jet and Replication Objects Library。
然后使用如下函数代码
- /// <summary>
- /// 压缩和修复mdb文件 www.7es.cn 悟空的博客
- /// </summary>
- /// <param name="filename">要压缩修复的mdb文件路径</param>
- /// <returns>成功与否</returns>
- public static bool CompactMDB(string filename)
- {
- try
- {
- if (filename.Length > 0)
- {
- return false;
- }
- string oldfile = filename;
- //建立一个临时mdb文件
- string tmpfile = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(oldfile),
- Guid.NewGuid().ToString("N") + ".mdb");
- //压缩类
- JRO.JetEngineClass eng = new JRO.JetEngineClass();
- //压缩mdb文件到临时文件
- eng.CompactDatabase(
- string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};", oldfile),
- string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};", tmpfile)
- );
- //删除旧文件
- System.IO.File.Delete(oldfile);
- //修改临时文件为原文件名
- System.IO.File.Move(tmpfile, oldfile);
- return true;
- }
- catch (Exception ex)
- {
- ex.ToString();
- return false;
- }
- }
- }
调用方法如
CompactMDB("c:\\\\abc.mdb");
c#中实现对access数据库mdb文件的压缩和修复一文来自悟空的博客www.7es.cn