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 ...