C#壓縮Access數(shù)據(jù)庫的方法是什么

這篇文章主要介紹“C#壓縮Access數(shù)據(jù)庫的方法是什么”,在日常操作中,相信很多人在C#壓縮Access數(shù)據(jù)庫的方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”C#壓縮Access數(shù)據(jù)庫的方法是什么”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

汝陽ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

不知你是否也厭煩了在工程中加入復(fù)雜的COM庫引用,但我相信這個(gè)純.NET代碼將省去額外的交互操作, RCWs和COM引用.基本上,由于系統(tǒng)中安裝的Microsoft類庫的不同(例如:MS Office Object Library 9,10,11等等),我們也不知道用戶PC中安裝的Office版本,所以我們要通過ProgID來訪問COM對(duì)象,而不能用CLSID.例如,當(dāng)調(diào)用"Excel.Application",時(shí),得到的是Excel,而不管系統(tǒng)中安裝MS Office的版本,當(dāng)在代碼中加入"MS Excel 10 Object library"引用時(shí),其實(shí)只是給應(yīng)用程序加入了一個(gè)非常受限制的功能.所以我們使用System.Reflection和遲綁定.

1. 實(shí)例代碼

只需調(diào)用CompactAccessDB函數(shù)即可壓縮和修復(fù)目標(biāo)數(shù)據(jù)庫.

2. 參數(shù):
◆connectionString – 用來連接到Access數(shù)據(jù)庫.
◆mdwfilename –要壓縮的MDB文件的全名(路徑+文件名).

由于Jet引擎的限制,執(zhí)行此方法C#壓縮Access數(shù)據(jù)庫會(huì)把結(jié)果生成為一個(gè)新文件,所以我們要還需要把這個(gè)新的Access文件拷貝到目的位置覆蓋原來未壓縮文件.

當(dāng)調(diào)用此方法時(shí)請(qǐng)確認(rèn)被壓縮數(shù)據(jù)庫無打開的連接.

代碼如下:

/// <summary> /// MBD compact method (c) 2004 Alexander Youmashev  /// !!IMPORTANT!!  /// !make sure there's no open connections  ///to your db before calling this method!  /// !!IMPORTANT!!  /// </summary> /// <param name="connectionString">connection string to your db</param> /// <param name="mdwfilename">FULL name  /// of an MDB file you want to compress.</param> public static void CompactAccessDB(string connectionString, string mdwfilename)  {  object[] oParams;   //create an inctance of a Jet Replication Object  object objJRO =  Activator.CreateInstance(Type.GetTypeFromProgID("JRO.JetEngine"));   //filling Parameters array  //cnahge "Jet OLEDB:Engine Type=5" to an appropriate value  // or leave it as is if you db is JET4X format (access 2000,2002)  //(yes, jetengine5 is for JET4X, no misprint here)  oParams = new object[] {  connectionString,  "Provider=Microsoft.Jet.OLEDB.4.0;Data" +  " Source=C:\\tempdb.mdb;Jet OLEDB:Engine Type=5"};   //invoke a CompactDatabase method of a JRO object  //pass Parameters array  objJRO.GetType().InvokeMember("CompactDatabase",  System.Reflection.BindingFlags.InvokeMethod,  null,  objJRO,  oParams);   //database is compacted now  //to a new file C:\\tempdb.mdw  //let's copy it over an old one and delete it   System.IO.File.Delete(mdwfilename);  System.IO.File.Move("C:\\tempdb.mdb", mdwfilename);   //clean up (just in case)  System.Runtime.InteropServices.Marshal.ReleaseComObject(objJRO);  objJRO=null;  }

到此,關(guān)于“C#壓縮Access數(shù)據(jù)庫的方法是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

當(dāng)前標(biāo)題:C#壓縮Access數(shù)據(jù)庫的方法是什么
鏈接URL:http://bm7419.com/article22/gosocc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、服務(wù)器托管、App開發(fā)、網(wǎng)站改版、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)