以下是个人在学习中的拙见,欢迎大家对以下代码进行批评指证!
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 ;
}
}
}
}
{
/// <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:球磨机价格 球磨机钢球用途 粉煤灰烘干机价格 冲击式破碎机技术参数 球磨机衬板 球磨机衬板材质 水泥球磨机价格 陶粒砂回转窑配件 反击式破碎机安装步骤