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設置暗碼.