C#使用晚綁定來實現(xiàn)壓縮Access數(shù)據(jù)庫的方法
本文實例講述了C#使用晚綁定來實現(xiàn)壓縮Access數(shù)據(jù)庫的方法,通常來說VB對Com后期綁定支持得很好,在C#中可以使用反射來實現(xiàn)。具體方法如下:
函數(shù)實現(xiàn)代碼如下:
public static void CompactAccessDB(string strMdbName) { string TempMdbName = Application.StartupPath + @"\Temp.mdb"; //創(chuàng)建 Jet 引擎對象 object objJetEngine = Activator.CreateInstance(Type.GetTypeFromProgID("JRO.JetEngine")); //設(shè)置參數(shù)數(shù)組 //根據(jù)你所使用的Access版本修改 "Jet OLEDB:Engine Type=5" 中的數(shù)字. //5 對應(yīng) 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) //輸出連接字符串 }; //通過反射調(diào)用 CompactDatabase 方法 objJetEngine.GetType().InvokeMember("CompactDatabase", System.Reflection.BindingFlags.InvokeMethod, null, objJetEngine, objParams); //刪除原數(shù)據(jù)庫文件 System.IO.File.Delete(strMdbName); //重命名壓縮后的數(shù)據(jù)庫文件 System.IO.File.Move(TempMdbName, strMdbName); //釋放Com組件 System.Runtime.InteropServices.Marshal.ReleaseComObject(objJetEngine); objJetEngine = null; }
那么為什么要使用晚綁定呢?可以直接在項目中添加對 JRO.JetEngine 組件的引用來實現(xiàn)。
在多人協(xié)作的開發(fā)環(huán)境中,添加引用需要簽出項目文件進(jìn)行修改.如果有組員機器上沒有這個組件,她就會無法編譯改動后程序.
而采用這種方式就很方便,復(fù)制過去就能用.不需要對項目進(jìn)行修改.
雖然晚綁定有小小性能損失,換來的方便性還是劃算的. 而且也不是經(jīng)常會用到這個功能.
對于有密碼的access文件怎么處理呢?
很簡單的,就是在輸入連接字符串中增加密碼的設(shè)置即可。
這樣默認(rèn)壓縮后的mdb就沒有密碼,如果希望壓縮后的mdb也有密碼,就在輸出的連接字符串里面增加密碼設(shè)置即可.
這個方法其實也可以用來修改mdb的密碼,取消mdb密碼,給mdb設(shè)置密碼.
- c#連接access數(shù)據(jù)庫操作類分享
- C#編程實現(xiàn)連接ACCESS數(shù)據(jù)庫實例詳解
- C#使用ADO.Net部件來訪問Access數(shù)據(jù)庫的方法
- C#動態(tài)創(chuàng)建Access數(shù)據(jù)庫及密碼的方法
- C#通過oledb訪問access數(shù)據(jù)庫的方法
- C#動態(tài)創(chuàng)建Access數(shù)據(jù)庫及表的方法
- C# Access數(shù)據(jù)庫增刪查改的簡單方法
- c# 連接access數(shù)據(jù)庫config配置
- 利用C#遠(yuǎn)程存取Access數(shù)據(jù)庫
- C#數(shù)據(jù)庫操作類AccessHelper實例
- C# Oracle數(shù)據(jù)庫操作類實例詳解
- C#實現(xiàn)的ACCESS數(shù)據(jù)庫操作類完整實例
相關(guān)文章
C# Winform調(diào)用百度接口實現(xiàn)人臉識別教程(附源碼)
這篇文章主要介紹了C# Winform調(diào)用百度接口實現(xiàn)人臉識別教程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05