mdb資料庫刪除了行記錄之後,資料庫大小不會減少,原因是沒有對資料庫進行整理,之前的資料快取一直留在資料庫中。可以用access自帶的清理快取(壓縮資料看)工具進行清理。
2003版本
2007版本
在**中也可以解決這個問題
using jro;
public
void
compact(string mdbpath)
//宣告臨時資料庫的名稱
string bak = datetime.now.tofiletime() + ".bak";//自定義名稱
bak = mdbpath.substring(0, mdbpath.lastindexof('\\') + 1) + bak;
//定義臨時資料庫的連線字串
string bakconn = "provider=microsoft.jet.oledb.4.0;data source=" + bak;
//定義目標資料庫的連線字串
string mdbconn = "provider=microsoft.jet.oledb.4.0;data source=" + mdbpath;
//建立乙個jetengineclass物件的例項
jro.jetengineclass jt = new jro.jetengineclass();
//使用jetengineclass物件的compactdatabase方法壓縮修復資料庫
jt.compactdatabase(mdbconn, bakconn);
//拷貝臨時資料庫到目標資料庫(覆蓋)
file.copy(bak, mdbpath, true);
//最後刪除臨時資料庫
file.delete(bak);
m_progressbar.writelogwithoutrunning("\t\t壓縮資料庫成功。");
}catch (exception ex)
}
注:
1、jor命名空間需要引用c:\program files\common files\system\ado\msjro.dll。
2、需要將引用後的dll的嵌入互操作型別設定為false
3、找不到可安裝的 isam 主要是資料庫連線串,存在問題(例如:data source 中間有空格.)。
ArcSDE轉本地MDB資料庫
乙個轉換類,將arcsde上特定要素資料集轉到本地的mdb中 using system using system.collections.generic using system.io using system.threading using esri.arcgis.geodatabase usin...
C 壓縮Access資料庫
壓縮資料庫 資料庫鏈結 要壓縮的mdb檔案的全名 static void compactaccessdb string dbfilename objjro.gettype invokemember compactdatabase system.reflection.bindingflags.invo...
mdb檔案匯入SQLServer資料庫中
mdb microsoft database 格式是microsoft access軟體使用的一種儲存格式,mdb格式的資料庫是一種關聯式資料庫。建立的資料庫名稱要與mdb檔案的名字相同 example example 任務 匯入資料 選擇資料來源 microsoft access 選擇mdb檔案位...