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