C# 壓縮Access資料庫

來源:互聯網
上載者:User

兩種方法:

一:

------------------------------------

        /// <summary>
        /// connectionString 資料庫連接字串
        /// mdwfilename 資料庫絕對路徑+資料庫名
        /// </summary>
        /// <param name="connectionString"></param>
        /// <param name="mdwfilename"></param>
        static void CompactAccessDB(string connectionString, string mdwfilename)
        {
            object[] oParams;
            object objJRO = Activator.CreateInstance(Type.GetTypeFromProgID("JRO.JetEngine"));
            oParams = new object[] {connectionString,
                 "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\temp.mdb;Jet OLEDB:Engine Type=5"};           objJRO.GetType().InvokeMember("CompactDatabase",System.Reflection.BindingFlags.InvokeMethod,
                null,objJRO,oParams);
            System.IO.File.Delete(mdwfilename);
            System.IO.File.Move("C:\\temp.mdb", mdwfilename);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(objJRO);
            objJRO = null;
        }

--------------------------

二:首先添加引用

-------------------------------------------------------------------------------------------------

JetEngine x = new JetEngine();
            x.CompactDatabase(connectstring,
                "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\temp.mdb;Jet OLEDB:Engine Type=5;User ID=Admin;Password=;");//第二個參數是用來存放壓縮後資料庫的
            System.IO.File.Delete(mdbfilename);
            System.IO.File.Move("C:\\temp.mdb", mdbfilename);

------------------------------

兩種方法差不多,第一種比較難理解,第二種添加dll,簡單易用。我在程式中用的第一種方法,避免了添加dll但是需要從資料庫連接字串裡解析出mdwfilename。此外,在調用上述方法前都得先關閉資料庫連接,因為畢竟都得delete舊資料庫的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.