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ù)組
//根據(jù)你所使用的Access版本修改 "Jet OLEDB:Engine Type=5" 中的數(shù)字.
//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);
//刪除原數(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īng)常會用到這個功能.
對于有密碼的access文件怎么處理呢?
很簡單的,就是在輸入連接字符串中增加密碼的設置即可。
這樣默認壓縮后的mdb就沒有密碼,如果希望壓縮后的mdb也有密碼,就在輸出的連接字符串里面增加密碼設置即可.
這個方法其實也可以用來修改mdb的密碼,取消mdb密碼,給mdb設置密碼.
- 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#遠程存取Access數(shù)據(jù)庫
- C#數(shù)據(jù)庫操作類AccessHelper實例
- C# Oracle數(shù)據(jù)庫操作類實例詳解
- C#實現(xiàn)的ACCESS數(shù)據(jù)庫操作類完整實例
相關文章
C# Winform調用百度接口實現(xiàn)人臉識別教程(附源碼)
這篇文章主要介紹了C# Winform調用百度接口實現(xiàn)人臉識別教程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-05-05

