這篇文章主要介紹“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)