亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

asp.net 備份和恢復數據庫的方法示例

2024-07-10 13:27:09
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:


/**********************************************************************************

 *
 * 功能說明:備份和恢復SQL Server數據庫
 * 作者: 劉功勛;
 * 版本:V0.1(C#2.0);時間:2007-1-1
 * 當使用SQL Server時,請引用 COM組件中的,SQLDMO.dll組件
 * 當使用Access中,請瀏覽添加引用以下兩個dll
 *          引用C:/Program Files/Common Files/System/ado/msadox.dll,該DLL包含ADOX命名空間
 *          引用C:/Program Files/Common Files/System/ado/msjro.dll,該DLL包含JRO命名空間
 * *******************************************************************************/
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using ADOX;//該命名空間包含創建ACCESS的類(方法)--解決方案 ==> 引用 ==> 添加引用 ==> 游覽找到.dll
using JRO;//該命名空間包含壓縮ACCESS的類(方法)

namespace EC
{
    /// <summary>
    /// 數據庫恢復和備份
    /// </summary>
    public class SqlBackObject
    {
        public SqlBackObject()
        {
            //
            // TODO: 在此處添加構造函數邏輯
            //
        }

        #region SQL數據庫備份
       /// <summary>
        /// SQL數據庫備份
       /// </summary>
       /// <param>SQL服務器IP或(Localhost)</param>
       /// <param>數據庫登錄名</param>
       /// <param>數據庫登錄密碼</param>
       /// <param>數據庫名</param>
       /// <param>備份到的路徑</param>
        public static void SQLBACK(string ServerIP,string LoginName,string LoginPass,string DBName,string BackPath)
        {
            SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
            SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
            try
            {
                oSQLServer.LoginSecure = false;
                oSQLServer.Connect(ServerIP, LoginName, LoginPass);
                oBackup.Database = DBName;
                oBackup.Files = BackPath;
                oBackup.BackupSetName = DBName;
                oBackup.BackupSetDescription = "數據庫備份";
                oBackup.Initialize = true;
                oBackup.SQLBackup(oSQLServer);

            }
            catch (Exception e)
            {
                throw new Exception(e.ToString());
            }
            finally
            {
                oSQLServer.DisConnect();
            }
        }
        #endregion

        #region SQL恢復數據庫
        /// <summary>
        /// SQL恢復數據庫
        /// </summary>
        /// <param>SQL服務器IP或(Localhost)</param>
        /// <param>數據庫登錄名</param>
        /// <param>數據庫登錄密碼</param>
        /// <param>要還原的數據庫名</param>
        /// <param>數據庫備份的路徑</param>

        public static void SQLDbRestore(string ServerIP,string LoginName,string LoginPass,string DBName,string BackPath)
        {

            SQLDMO.Restore orestore = new SQLDMO.RestoreClass();
            SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
            try
            {
                oSQLServer.LoginSecure = false;
                oSQLServer.Connect(ServerIP, LoginName, LoginPass);
                orestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
                orestore.Database = DBName;
                orestore.Files = BackPath;
                orestore.FileNumber = 1;
                orestore.ReplaceDatabase = true;
                orestore.SQLRestore(oSQLServer);

            }
            catch (Exception e)
            {
                throw new Exception(e.ToString());
            }
            finally
            {
                oSQLServer.DisConnect();
            }
        }


        #endregion

        #region 根據指定的文件名稱創建Access數據庫
        /// <summary>
        /// 根據指定的文件名稱創建數據
        /// </summary>
        /// <param>絕對路徑+文件名稱</param>
        public static void CreateAccess(string DBPath)
        {
            if (File.Exists(DBPath))//檢查數據庫是否已存在
            {
                throw new Exception("目標數據庫已存在,無法創建");
            }         
            DBPath = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+DBPath;
            //創建一個CatalogClass對象實例
            ADOX.CatalogClass cat = new ADOX.CatalogClass();
            //使用CatalogClass對象的Create方法創建ACCESS數據庫
            cat.Create(DBPath);

        }
        #endregion

        #region 壓縮Access數據庫
        /// <summary>
        /// 壓縮Access數據庫
        /// </summary>
        /// <param>數據庫絕對路徑</param>
        public static void CompactAccess(string DBPath)
        {
            if (!File.Exists(DBPath))
            {
                throw new Exception("目標數據庫不存在,無法壓縮");
            }

            //聲明臨時數據庫名稱
            string temp = DateTime.Now.Year.ToString();
            temp += DateTime.Now.Month.ToString();
            temp += DateTime.Now.Day.ToString();
            temp += DateTime.Now.Hour.ToString();
            temp += DateTime.Now.Minute.ToString();
            temp += DateTime.Now.Second.ToString() + ".bak";
            temp = DBPath.Substring(0, DBPath.LastIndexOf("http://") + 1) + temp;
            //定義臨時數據庫的連接字符串
            string temp2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+temp;
            //定義目標數據庫的連接字符串
            string DBPath2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+DBPath;
            //創建一個JetEngineClass對象的實例
            JRO.JetEngineClass jt = new JRO.JetEngineClass();
            //使用JetEngineClass對象的CompactDatabase方法壓縮修復數據庫
            jt.CompactDatabase(DBPath2, temp2);
            //拷貝臨時數據庫到目標數據庫(覆蓋)
            File.Copy(temp, DBPath, true);
            //最后刪除臨時數據庫
            File.Delete(temp);
        }
        #endregion

        #region 備份Access數據庫
        /// <summary>
        /// 備份Access數據庫
        /// </summary>
        /// <param>要備份的數據庫絕對路徑</param>
        /// <param>備份到的數據庫絕對路徑</param>
        /// <returns></returns>
        public static void Backup(string srcPath,string aimPath)
        {

            if (!File.Exists(srcPath))
            {
                throw new Exception("源數據庫不存在,無法備份");
            }
            try
            {
                File.Copy(srcPath,aimPath,true);
            }
            catch(IOException ixp)
            {
                throw new Exception(ixp.ToString());
            }

        }

        #endregion

        #region 還原Access數據庫
        /// <summary>
        /// 還原Access數據庫
        /// </summary>
        /// <param>備份的數據庫絕對路徑</param>
        /// <param>要還原的數據庫絕對路徑</param>
        public static void RecoverAccess(string bakPath,string dbPath)
        {         
            if (!File.Exists(bakPath))
            {
                throw new Exception("備份數據庫不存在,無法還原");
            }
            try
            {
                File.Copy(bakPath, dbPath, true);
            }
            catch (IOException ixp)
            {
                throw new Exception(ixp.ToString());
            }      
        }      
        #endregion
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
www国产亚洲精品久久网站| 大荫蒂欧美视频另类xxxx| 精品久久中文字幕久久av| 精品视频—区二区三区免费| 亚洲第一网中文字幕| 欧美激情精品久久久久久久变态| 国产成人亚洲综合91精品| 日韩国产一区三区| 欧美日韩高清在线观看| 精品久久香蕉国产线看观看gif| 黄色成人在线免费| 91精品久久久久久久久久| 精品免费在线视频| 国产精品自拍偷拍| 亚洲第一精品福利| 久久久久久久久久久久av| 国产精品视频男人的天堂| 欧美日韩亚洲91| 日韩av不卡在线| 欧美又大又粗又长| 欧美精品久久久久久久久久| 成人午夜黄色影院| 最新国产精品拍自在线播放| 日韩亚洲精品电影| 97av在线视频| 午夜精品久久久久久久99热浪潮| 亚洲图片欧美日产| 国产欧美韩国高清| 国产丝袜一区二区三区免费视频| 成人免费观看49www在线观看| 久久精品国产99国产精品澳门| 亚洲精品一区久久久久久| 国产精品美乳一区二区免费| 日韩久久午夜影院| 久久这里有精品视频| 狠狠色香婷婷久久亚洲精品| 91福利视频网| 欧美激情一区二区三区高清视频| 欧美电影免费观看高清| 久久久中文字幕| 国产一区香蕉久久| 尤物yw午夜国产精品视频明星| 最近2019年手机中文字幕| 亚洲色图美腿丝袜| 欧美日韩成人在线视频| 久久99精品久久久久久青青91| 91成人精品网站| 欧美日韩高清在线观看| 欧美精品九九久久| 国产日韩欧美在线播放| yw.139尤物在线精品视频| 国模精品视频一区二区| 欧美性生活大片免费观看网址| 久热精品视频在线免费观看| 国产一区在线播放| 久精品免费视频| 日本亚洲欧洲色| 精品国产一区二区三区在线观看| 91久久久久久久久久久久久| 欧美成人一二三| 国产精品盗摄久久久| 亚洲人成在线观看网站高清| 日韩有码视频在线| 国产精品一区二区女厕厕| 欧美精品videos另类日本| 日本精品久久久久影院| 欧美激情va永久在线播放| 亚洲欧美精品一区二区| 亚洲精品久久久久久久久| www.久久草.com| 九九九热精品免费视频观看网站| 久久久国产精品亚洲一区| 91社影院在线观看| 久久久女女女女999久久| 日韩美女视频免费在线观看| 国产日韩欧美日韩| 国内精品模特av私拍在线观看| 一本色道久久综合狠狠躁篇的优点| 亚洲影视九九影院在线观看| 精品一区二区亚洲| 日韩美女在线播放| 一区二区欧美亚洲| 中文字幕亚洲专区| 国产精品手机播放| 精品国内产的精品视频在线观看| 国产精品国产福利国产秒拍| 中文字幕精品一区久久久久| 日韩欧美极品在线观看| 欧美裸体xxxxx| 色综合久久88| 亚洲免费电影一区| 日韩av影院在线观看| 国产精品第七十二页| 91久久久久久久久久久| 亚洲无线码在线一区观看| 亚洲加勒比久久88色综合| 国产精品久久久一区| 在线观看日韩视频| 日韩经典中文字幕在线观看| 亚洲精品电影网站| 国产精品wwwwww| 韩国美女主播一区| 欧美大尺度激情区在线播放| 国产丝袜一区二区三区| 国产精品高清在线| 国产精品海角社区在线观看| 亚洲综合精品伊人久久| 国产在线观看精品| 成人网欧美在线视频| 中文字幕国产精品| 91国产美女视频| 国产啪精品视频| 国产精品久久久久久久久久久久久久| 亚洲精品国偷自产在线99热| 91国产视频在线播放| 亚洲国产精品推荐| 国内精久久久久久久久久人| 久久久国产一区二区三区| 国产精品一区二区三区在线播放| 国产在线观看精品一区二区三区| 一区二区三区四区精品| 国产精品视频白浆免费视频| 精品综合久久久久久97| 亚洲成人网在线观看| 国产精品永久免费| 91精品国产色综合| 人体精品一二三区| 8090理伦午夜在线电影| 日韩黄色高清视频| 97久久精品人人澡人人爽缅北| 色先锋资源久久综合5566| 亚洲a级在线播放观看| 国产精品成人在线| www.亚洲成人| 福利视频导航一区| 久久亚洲一区二区三区四区五区高| 久久久久久久久国产精品| 欧美成年人网站| 色狠狠av一区二区三区香蕉蜜桃| 欧美一级电影在线| 国产精品久久在线观看| 欧美激情精品久久久久久黑人| 欧美大成色www永久网站婷| 欧美性猛交xxxx黑人| 久久亚洲精品视频| 精品网站999www| 97人人模人人爽人人喊中文字| 91精品国产自产91精品| 久久色免费在线视频| 九九热视频这里只有精品| 精品久久久久久亚洲国产300| 国产午夜精品免费一区二区三区| 色多多国产成人永久免费网站| 亚洲美女精品久久| 欧美乱妇40p| 欧美日韩综合视频网址| 日韩在线观看视频免费| 26uuu另类亚洲欧美日本老年| 国产精品久久久久久五月尺| 欧美一级淫片丝袜脚交| 久久激情五月丁香伊人| 中文字幕欧美日韩在线| 色偷偷av亚洲男人的天堂| 亚洲第一页自拍|