第一种(未测试过,比较麻烦不是?):
添加引用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,
第二种:
同样,恢复备份就是先删除原数据库.在线压缩还原得先关掉站点.
//用备份的库替换原数据库
System.IO.File.Move(tempDataBasePath,dataBasePath);
我用的是第二种.希望对你有用