博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
你会用C#压缩access数据库吗?xuedaonet教你如何用C#压缩access数据库?
阅读量:5259 次
发布时间:2019-06-14

本文共 1634 字,大约阅读时间需要 5 分钟。

你会用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

你可能感兴趣的文章
B. Trees in a Row(cf)
查看>>
PowerShell导出场中的WSP包到本地
查看>>
nodejs下载图片到本地,根据百度图片查找相应的图片,通过nodejs保存到本地文件夹...
查看>>
使用Jquery解析Json基础知识
查看>>
SQLserver锁和事务隔离级别的比较与使用(转)
查看>>
Problem B: 分数类的类型转换
查看>>
python-zmail发送邮件
查看>>
[转]formValidator的一些验证实例
查看>>
实验九 存储函数和触发器
查看>>
非递归遍历二叉树
查看>>
单点登录学习(2)CAS服务器端配置编程
查看>>
启动tomcat错误“Unable to load configuration”解决
查看>>
BZOJ 1012--[JSOI2008]最大数maxnumber(二分&单调栈)
查看>>
HDU 3068:最长回文(Manacher算法)
查看>>
ckeditor小记
查看>>
C#常用集合的使用(转载)
查看>>
Form Effect - 表单美化插件
查看>>
linux中test的意义 又可以表示为[]
查看>>
Objective C--职责链模式
查看>>
20145220韩旭飞《网络对抗》Exp8 Web基础
查看>>