国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#使用晚綁定來實(shí)現(xiàn)壓縮Access數(shù)據(jù)庫的方法

2020-01-24 02:33:55
字體:
供稿:網(wǎng)友

本文實(shí)例講述了C#使用晚綁定來實(shí)現(xiàn)壓縮Access數(shù)據(jù)庫的方法,通常來說VB對(duì)Com后期綁定支持得很好,在C#中可以使用反射來實(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) //輸出連接字符串     };    //通過反射調(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;}

那么為什么要使用晚綁定呢?可以直接在項(xiàng)目中添加對(duì) JRO.JetEngine 組件的引用來實(shí)現(xiàn)。

在多人協(xié)作的開發(fā)環(huán)境中,添加引用需要簽出項(xiàng)目文件進(jìn)行修改.如果有組員機(jī)器上沒有這個(gè)組件,她就會(huì)無法編譯改動(dòng)后程序.
而采用這種方式就很方便,復(fù)制過去就能用.不需要對(duì)項(xiàng)目進(jìn)行修改.
雖然晚綁定有小小性能損失,換來的方便性還是劃算的. 而且也不是經(jīng)常會(huì)用到這個(gè)功能.

對(duì)于有密碼的access文件怎么處理呢?

很簡(jiǎn)單的,就是在輸入連接字符串中增加密碼的設(shè)置即可。
這樣默認(rèn)壓縮后的mdb就沒有密碼,如果希望壓縮后的mdb也有密碼,就在輸出的連接字符串里面增加密碼設(shè)置即可.
這個(gè)方法其實(shí)也可以用來修改mdb的密碼,取消mdb密碼,給mdb設(shè)置密碼.

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 巴马| 庆云县| 曲周县| 广汉市| 勃利县| 平凉市| 南安市| 淳化县| 黎川县| 濮阳市| 扶绥县| 长兴县| 姚安县| 双牌县| 福安市| 二连浩特市| 武陟县| 甘德县| 城口县| 鹤岗市| 新津县| 嵩明县| 襄垣县| 亚东县| 三都| 文水县| 尚志市| 哈尔滨市| 晋江市| 平陆县| 洪洞县| 海伦市| 聂拉木县| 渭南市| 五河县| 宣化县| 河源市| 蒙自县| 巧家县| 菏泽市| 安丘市|