日期:2014-05-18  浏览次数:21032 次

关于压缩access数据库的问题
public void CompactAccessDB(string connectionString, string mdwfilename)
  {
  try
  {
  if (!File.Exists(connectionString))
  {
  Console.WriteLine("目标不存在");

  }
  else
  {
  object objJRO = Activator.CreateInstance(Type.GetTypeFromProgID("JRO.JetEngine"));
  object[] oParams = new object[] { "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='"+connectionString+"';"
  +"Jet OLEDB:database password=leoone", 
  "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\tempdb.mdb;"
  +"Jet OLEDB:database password=leoone;Jet OLEDB:Jet OLEDB:Engine Type=5;" };
  objJRO.GetType().InvokeMember("CompactDatabase", System.Reflection.BindingFlags.InvokeMethod, null, objJRO, oParams);
  System.IO.File.Delete(mdwfilename);
  System.IO.File.Move("C:\\tempdb.mdb", mdwfilename);

  }
  }
  catch (OleDbException oe)
  {
  Console.WriteLine(oe.Message);
  }
  }

上面这段代码是压缩access数据库,但有时候会报个"调用目标发生异常"这个错误,大部分时间都没有问题,哪位高手能帮我分析下;
谢谢了

------解决方案--------------------
异常信息量不足,楼主能否给出StackTrace信息?
------解决方案--------------------
没有遇到过,帮你顶了。
------解决方案--------------------
请楼主输出oe.StackTrace信息
------解决方案--------------------
牛贴的哥们,朋友,兄弟姐妹们帮我踩踩这个贴啊,急~~~~~~~~~晚上通宵搞顶的任务-.-!!
http://topic.csdn.net/u/20080911/22/8b02ddc9-0a3c-497e-8a2d-7a1735bc116a.html