C 中使用晚繫結實現壓縮Access資料庫

2021-09-08 14:24:46 字數 1294 閱讀 9182

c#中使用晚繫結實現壓縮access資料庫.

vb對com後期繫結支援得很好,在c#中可以使用反射來實現.

函式實現**如下:

1public

static

void

compactaccessdb(

string

strmdbname)2"

,strmdbname), 

//輸入連線字串

14string.format(

"provider=microsoft.jet.oledb.4.0;data source=;jet oledb:engine type=5

",tempmdbname) 

//輸出連線字串

15};

1617

//通過反射呼叫 compactdatabase 方法

18objjetengine.gettype().invokemember(

"compactdatabase",

19system.reflection.bindingflags.invokemethod,

20null,21

objjetengine,

22objparams);

2324

//刪除原資料庫檔案

25system.io.file.delete(strmdbname);

26//

重新命名壓縮後的資料庫檔案

27system.io.file.move(tempmdbname, strmdbname);

28//

釋放com元件

29system.runtime.interopservices.marshal.releasecomobject(objjetengine);

30objjetengine 

=null;31

} 為什麼要使用晚繫結呢?可以直接在專案中新增對 jro.jetengine 元件的引用來實現的.

在多人協作的開發環境中,新增引用需要簽出專案檔案進行修改.如果有組員機器上沒有這個元件,她就會無法編譯改動後程式.

這種方式就很方便,複製過去就能用.不需要對專案進行修改.

雖然晚繫結有小小效能損失,換來的方便性還是划算的. 而且也不是經常會用到這個功能.

對於有密碼的access檔案怎麼處理呢?

很簡單的,就是在輸入連線字串中增加密碼的設定即可.

這樣預設壓縮後的mdb就沒有密碼,如果希望壓縮後的mdb也有密碼,就在輸出的連線字串裡面增加密碼設定即可.

這個方法其實也可以用來修改mdb的密碼,取消mdb密碼,給mdb設定密碼.

C 中使用晚繫結實現壓縮Access資料庫

c 中使用晚繫結實現壓縮access資料庫.vb對com後期繫結支援得很好,在c 中可以使用反射來實現.函式實現 如下 public static void compactaccessdb string strmdbname strmdbname 輸入連線字串 string.format provi...

C 中使用晚繫結實現壓縮Access資料庫

c 中使用晚繫結實現壓縮access資料庫.vb對com後期繫結支援得很好,在c 中可以使用反射來實現.函式實現 如下 static void compactaccessdb string strmdbname strmdbname 輸入連線字串 string.format provider mic...

C 中使用 實現唯讀屬性

今天在閱讀unity的fps microgame原始碼時,發現了以下奇怪的語句 public gameobject knowndetectedtarget m detectionmodule.knowndetectedtarget public bool istargetinattackrange ...