主要有两种方式,第一种是引用C:\winnt\system32\msjro.dll 的COM组件,第二种不引用,直接用C#操作
第一种(未测试过,比较麻烦不是?):
添加引用COM:C:\winnt\system32\msjro.dll     
调用:using MyJro;//名称空间 
     void CompressAccess(){ string StrConn1="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("/bin/ip.mdb");
string StrConn2="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("/bin/ip2.mdb");
JetEngine DatabaseEngin=new JetEngine(); DatabaseEngin.CompactDatabase(StrConn1,StrConn2); }  //ip2.mdb是压缩后的数据库,压缩后,如果恢复备份删除ip.mdb,
第二种:
ACESS数据库在线压缩备份        //原数据库
ACESS数据库在线压缩备份
        private string dataBasePath; 
ACESS数据库在线压缩备份       
//备份后的数据库名
ACESS数据库在线压缩备份
        private string tempDataBasePath=HttpContext.Current.Request.PhysicalApplicationPath+"/data/tempdb.mdb";
ACESS数据库在线压缩备份       
//数据库连接字符串
ACESS数据库在线压缩备份
       private string connectionString;
ACESS数据库在线压缩备份
ACESS数据库在线压缩备份
//ACESS数据库在线压缩备份..省略代码      
ACESS数据库在线压缩备份
        public  void CompactAccessDB()
        }

同样,恢复备份就是先删除原数据库.在线压缩还原得先关掉站点.
     //用备份的库替换原数据库
            System.IO.File.Move(tempDataBasePath,dataBasePath);
我用的是第二种.希望对你有用

相关文章:

  • 2021-04-14
  • 2021-09-12
  • 2021-12-04
  • 2021-12-04
  • 2021-12-06
  • 2021-12-19
  • 2021-11-27
  • 2021-12-08
猜你喜欢
  • 2021-06-09
  • 2021-09-15
  • 2021-08-18
  • 2021-12-02
  • 2021-12-09
  • 2021-06-12
  • 2021-12-11
  • 2021-07-24
相关资源
相似解决方案