程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#應用晚綁定來完成緊縮Access數據庫的辦法

C#應用晚綁定來完成緊縮Access數據庫的辦法

編輯:C#入門知識

C#應用晚綁定來完成緊縮Access數據庫的辦法。本站提示廣大學習愛好者:(C#應用晚綁定來完成緊縮Access數據庫的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C#應用晚綁定來完成緊縮Access數據庫的辦法正文


本文實例講述了C#應用晚綁定來完成緊縮Access數據庫的辦法,平日來講VB對Com前期綁定支撐得很好,在C#中可使用反射來完成。詳細辦法以下:

函數完成代碼以下:

public static void CompactAccessDB(string strMdbName)
{
   string TempMdbName = Application.StartupPath + @"\Temp.mdb";
 
   //創立 Jet 引擎對象
   object objJetEngine = Activator.CreateInstance(Type.GetTypeFromProgID("JRO.JetEngine"));
 
   //設置參數數組
   //依據你所應用的Access版本修正 "Jet OLEDB:Engine Type=5" 中的數字.
   //5 對應 JET4X 格局 (access 2000,2002)
 
   object[] objParams = new object[] {
     String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}",strMdbName), //輸出銜接字符串
     String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Jet OLEDB:Engine Type=5",TempMdbName) //輸入銜接字符串
     };
 
   //經由過程反射挪用 CompactDatabase 辦法
   objJetEngine.GetType().InvokeMember("CompactDatabase",
       System.Reflection.BindingFlags.InvokeMethod,
       null,
       objJetEngine,
       objParams);
 
   //刪除原數據庫文件
   System.IO.File.Delete(strMdbName);
   //重定名緊縮後的數據庫文件
   System.IO.File.Move(TempMdbName, strMdbName);
   //釋放Com組件
   System.Runtime.InteropServices.Marshal.ReleaseComObject(objJetEngine);
   objJetEngine = null;
}

那末為何要應用晚綁定呢?可以直接在項目中添加對 JRO.JetEngine 組件的援用來完成。

在多人協作的開辟情況中,添加援用須要簽進項目文件停止修正.假如有組員機械上沒有這個組件,她就會沒法編譯修改後法式.
而采取這類方法就很便利,復制曩昔就可以用.不須要對項目停止修正.
固然晚綁定有小小機能喪失,換來的便利性照樣劃算的. 並且也不是常常會用到這個功效.

關於有暗碼的access文件怎樣處置呢?

很簡略的,就是在輸出銜接字符串中增長暗碼的設置便可。
如許默許緊縮後的mdb就沒有暗碼,假如願望緊縮後的mdb也有暗碼,就在輸入的銜接字符串外面增長暗碼設置便可.
這個辦法其實也能夠用來修正mdb的暗碼,撤消mdb暗碼,給mdb設置暗碼.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved