文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>你会用C#压缩access数据库吗?xuedaonet教你如何用C#压缩access数据库?

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

时间:2011-04-18  来源:刀那儿特

你会用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:球磨机价格 球磨机钢球用途 粉煤灰烘干机价格 冲击式破碎机技术参数 球磨机衬板 球磨机衬板材质 水泥球磨机价格 陶粒砂回转窑配件 反击式破碎机安装步骤

相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载