你会用C#压缩access数据库吗?xuedaonet教你如何用C#压缩access数据库?

你会用C#压缩access数据库吗?xuedaonet教你如何用C#压缩access数据库?
以下是个人在学习中的拙见,欢迎大家对以下代码进行批评指证!
 
  
public static class Util
{
/// <summary>
/// MBD compact method (c) 2004 Alexander Youmashev
/// !!IMPORTANT!!
/// !确保调用此方法前要压缩的数据库没有打开的连接,为防止万一,应在压缩前进行备份。
/// !!IMPORTANT!!
/// </summary>
/// <param name="connectionString"> 到源数据库的连接字符串,源数据库是指要压缩的数据库 </param>
/// <param name="mdwfilename"> 目标数据库的物理文件名,含路径,目标数据库即压缩后得到的新数据库 </param>
public static void CompactAccessDB( string connectionString, string mdwfilename)
{
object [] oParams;

object objJRO = null ;

try
{
// 创建 Jet Replication 对象的实例
objJRO = Activator.CreateInstance(Type.GetTypeFromProgID( " JRO.JetEngine " ));
// 填充参数数组
// 将 "Jet OLEDB:Engine Type=5" 换成合适的值,
// 如果目标数据库是 JET4X 格式 (access 2000,2002),
// 那么可以保留现有的值
// (yes, jetengine5 is for JET4X, no misprint here)
string tmpPath = mdwfilename.Substring( 0 , mdwfilename.LastIndexOf( " \\ " ));
tmpPath
+= " \\ " + " tempdb.mdb " ;
string destConStr = string .Format( " Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Jet OLEDB:Engine Type=5 " , tmpPath);

oParams
= new object [] { connectionString, destConStr };
// 调用 JRO 对象的压缩方法,并传递参数数组
objJRO.GetType().InvokeMember( " CompactDatabase " ,
System.Reflection.BindingFlags.InvokeMethod,
null ,
objJRO,
oParams);
// 数据库已被压缩到一个新文件:C:\\tempdb.mdw
// 现在可以用这个新文件覆盖旧的数据库文件
System.IO.File.Delete(mdwfilename);
System.IO.File.Move(tmpPath, mdwfilename);
}
catch
{
throw ;
}
finally
{
// clean up (just in case)
if (objJRO != null )
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(objJRO);
objJRO
= null ;
}
}
}

}

小小的AD:球磨机价格 球磨机钢球用途 粉煤灰烘干机价格 冲击式破碎机技术参数 球磨机衬板 球磨机衬板材质 水泥球磨机价格 陶粒砂回转窑配件 反击式破碎机安装步骤

转载于:https://www.cnblogs.com/xuedaonent/archive/2011/04/18/2020148.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值