9///數(shù)據(jù)庫(kù)操作幫助類(lèi)10///11publicclassDatabaseHelper12{13privateconststringSQL_DATABASE_BACK="BACKUPDATABASE{0}TODISK" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

ASP.NET SQLServer2005 數(shù)據(jù)庫(kù)備份與還原

系統(tǒng) 2727 0
      
          1
      
      
        using
      
      
         System;


      
      
          2
      
      
        using
      
      
         System.Data.SqlClient;


      
      
          3
      
      
        using
      
      
         System.Data;


      
      
          4
      
      
        using
      
      
         System.IO;


      
      
          5
      
      
          6
      
      
        namespace
      
      
         NET.Common


      
      
          7
      
      
        {


      
      
          8
      
      
        ///
      
      
        <summary>
      
      
          9
      
      
        ///
      
      
         數(shù)據(jù)庫(kù)操作幫助類(lèi)


      
      
         10
      
      
        ///
      
      
        </summary>
      
      
         11
      
      
        public
      
      
        class
      
      
         DatabaseHelper


      
      
         12
      
      
            {


      
      
         13
      
      
        private
      
      
        const
      
      
        string
      
       SQL_DATABASE_BACK = 
      
        "
      
      
        BACKUP DATABASE {0} TO DISK = '{1}'
      
      
        "
      
      ; 
      
        //
      
      
        數(shù)據(jù)庫(kù)備份語(yǔ)句
      
      
         14
      
      
        private
      
      
        const
      
      
        string
      
       SQL_DATABASE_RESTORE = 
      
        "
      
      
        RESTORE DATABASE {0} FROM DISK = '{1}' WITH REPLACE
      
      
        "
      
      ; 
      
        //
      
      
        數(shù)據(jù)庫(kù)還原語(yǔ)句
      
      
         15
      
      
        private
      
      
        const
      
      
        string
      
       SQL_SELECT_ALL_CONN = 
      
        "
      
      
        SELECT spid FROM master..sysprocesses WHERE dbid=db_id('{0}')
      
      
        "
      
      ; 
      
        //
      
      
        獲取指定數(shù)據(jù)庫(kù)所有鏈接語(yǔ)句
      
      
         16
      
      
         17
      
      
        ///
      
      
        <summary>
      
      
         18
      
      
        ///
      
      
         實(shí)例數(shù)據(jù)庫(kù)操作


      
      
         19
      
      
        ///
      
      
        </summary>
      
      
         20
      
      
        ///
      
      
        <param name="masterConnectionString">
      
      
        master數(shù)據(jù)庫(kù)鏈接字符串
      
      
        </param>
      
      
         21
      
      
        public
      
       DatabaseHelper(
      
        string
      
      
         masterConnectionString)


      
      
         22
      
      
                {


      
      
         23
      
      
        this
      
      .MasterConnectionString =
      
         masterConnectionString;


      
      
         24
      
      
                }


      
      
         25
      
      
         26
      
      
        ///
      
      
        <summary>
      
      
         27
      
      
        ///
      
      
         master數(shù)據(jù)庫(kù)鏈接字符串


      
      
         28
      
      
        ///
      
      
        </summary>
      
      
         29
      
      
        private
      
      
        string
      
       MasterConnectionString { 
      
        get
      
      ; 
      
        set
      
      
        ; }


      
      
         30
      
      
         31
      
      
        ///
      
      
        <summary>
      
      
         32
      
      
        ///
      
      
         SQLServer數(shù)據(jù)庫(kù)備份


      
      
         33
      
      
        ///
      
      
        </summary>
      
      
         34
      
      
        ///
      
      
        <param name="connectionString">
      
      
        數(shù)據(jù)庫(kù)連接字符串
      
      
        </param>
      
      
         35
      
      
        ///
      
      
        <param name="backName">
      
      
        備份文件名稱(chēng),不包含后綴名
      
      
        </param>
      
      
         36
      
      
        ///
      
      
        <param name="path">
      
      
        備份文件存放的物理路徑
      
      
        </param>
      
      
         37
      
      
        public
      
      
        bool
      
       Back(
      
        string
      
       dbName, 
      
        string
      
       backName, 
      
        string
      
      
         path)


      
      
         38
      
      
                {


      
      
         39
      
      
        //
      
      
        判斷存放備份文件的目錄是否存在
      
      
         40
      
      
        if
      
       (!
      
        Directory.Exists(path))


      
      
         41
      
      
                    {


      
      
         42
      
      
        //
      
      
        不存在,新建目錄
      
      
         43
      
      
                        Directory.CreateDirectory(path);


      
      
         44
      
      
                    }


      
      
         45
      
      
         46
      
      
        try
      
      
         47
      
      
                    {


      
      
         48
      
      
        using
      
       (SqlConnection conn = 
      
        new
      
      
         SqlConnection(MasterConnectionString))


      
      
         49
      
      
                        {


      
      
         50
      
      
        //
      
      
        設(shè)置存放備份文件的完整物理路徑
      
      
         51
      
      
        string
      
       backPath = path + 
      
        "
      
      
        \\
      
      
        "
      
       + backName + 
      
        "
      
      
        .bak
      
      
        "
      
      
        ;


      
      
         52
      
      
         53
      
      
        //
      
      
        設(shè)置數(shù)據(jù)庫(kù)備份的T-SQL語(yǔ)句
      
      
         54
      
      
        string
      
       t_sql_back = 
      
        string
      
      
        .Format(SQL_DATABASE_BACK, dbName, backPath);


      
      
         55
      
      
         56
      
      
        using
      
       (SqlCommand cmd = 
      
        new
      
      
         SqlCommand(t_sql_back, conn))


      
      
         57
      
      
                            {


      
      
         58
      
                               cmd.CommandType =
      
         CommandType.Text;


      
      
         59
      
      
                                conn.Open();


      
      
         60
      
      
         61
      
      
        //
      
      
        開(kāi)始備份
      
      
         62
      
      
                                cmd.ExecuteNonQuery();


      
      
         63
      
      
         64
      
      
        return
      
      
        true
      
      
        ;


      
      
         65
      
      
                            }


      
      
         66
      
      
                        }


      
      
         67
      
      
                    }


      
      
         68
      
      
        catch
      
      
         69
      
      
                    {


      
      
         70
      
      
        return
      
      
        false
      
      
        ;


      
      
         71
      
      
                    }


      
      
         72
      
      
                }


      
      
         73
      
      
         74
      
      
        ///
      
      
        <summary>
      
      
         75
      
      
        ///
      
      
         SQLServer數(shù)據(jù)庫(kù)還原


      
      
         76
      
      
        ///
      
      
        </summary>
      
      
         77
      
      
        ///
      
      
        <param name="dbName">
      
      
        要進(jìn)行還原的數(shù)據(jù)庫(kù)名稱(chēng)
      
      
        </param>
      
      
         78
      
      
        ///
      
      
        <param name="fullPath">
      
      
        備份文件的完整物理路徑
      
      
        </param>
      
      
         79
      
      
        public
      
      
        bool
      
       Restore(
      
        string
      
       dbName, 
      
        string
      
      
         fullPath)


      
      
         80
      
      
                {


      
      
         81
      
      
        //
      
      
        判斷還原使用的文件是否存在
      
      
         82
      
      
        if
      
       (!
      
        File.Exists(fullPath))


      
      
         83
      
      
                    {


      
      
         84
      
      
        return
      
      
        false
      
      
        ;


      
      
         85
      
      
                    }


      
      
         86
      
      
         87
      
      
        try
      
      
         88
      
      
                    {


      
      
         89
      
      
        using
      
       (SqlConnection conn = 
      
        new
      
      
         SqlConnection(MasterConnectionString))


      
      
         90
      
      
                        {


      
      
         91
      
      
        //
      
      
        設(shè)置數(shù)據(jù)庫(kù)還原的T-SQL語(yǔ)句
      
      
         92
      
      
        string
      
       t_sql_restore = 
      
        string
      
      
        .Format(SQL_DATABASE_RESTORE, dbName, fullPath);


      
      
         93
      
      
         94
      
      
        //
      
      
        設(shè)置查詢(xún)指定數(shù)據(jù)庫(kù)的所有連接
      
      
         95
      
      
        string
      
       t_sql_select_all_conn = 
      
        string
      
      
        .Format(SQL_SELECT_ALL_CONN, dbName);


      
      
         96
      
      
         97
      
      
        string
      
      
         t_sql_kill;


      
      
         98
      
      
         99
      
      
                            conn.Open();


      
      
        100
      
      
        101
      
      
        //
      
      
        獲取指定數(shù)據(jù)庫(kù)所有連接
      
      
        102
      
                           SqlCommand cmd = 
      
        new
      
      
         SqlCommand(t_sql_select_all_conn, conn);


      
      
        103
      
                           SqlDataAdapter reSDA = 
      
        new
      
      
         SqlDataAdapter(cmd);


      
      
        104
      
                           DataTable dtConn = 
      
        new
      
      
         DataTable();


      
      
        105
      
      
                            reSDA.Fill(dtConn);


      
      
        106
      
      
        107
      
      
        //
      
      
        逐一刪除連接
      
      
        108
      
      
        for
      
       (
      
        int
      
       i = 
      
        0
      
      ; i < dtConn.Rows.Count; i++
      
        )


      
      
        109
      
      
                            {


      
      
        110
      
                               t_sql_kill = 
      
        "
      
      
         kill  
      
      
        "
      
       + dtConn.Rows[i][
      
        0
      
      
        ].ToString();


      
      
        111
      
                               cmd = 
      
        new
      
      
         SqlCommand(t_sql_kill, conn);


      
      
        112
      
      
                                cmd.ExecuteNonQuery();


      
      
        113
      
      
                            }


      
      
        114
      
      
        115
      
      
        //
      
      
        執(zhí)行還原操作
      
      
        116
      
                           cmd = 
      
        new
      
      
         SqlCommand(t_sql_restore, conn);


      
      
        117
      
      
                            cmd.ExecuteNonQuery();


      
      
        118
      
      
        119
      
      
        //
      
      
        清空當(dāng)前連接池,這個(gè)很主要,如果不清空還原后第一次訪(fǎng)問(wèn)會(huì)出現(xiàn)“在向服務(wù)器發(fā)送請(qǐng)求時(shí)發(fā)生傳輸級(jí)錯(cuò)誤。 (provider: 共享內(nèi)存提供程序, error: 0 - 管道的另一端上無(wú)任何進(jìn)程。)”錯(cuò)誤
      
      
        120
      
      
                            SqlConnection.ClearPool(conn);


      
      
        121
      
      
        return
      
      
        true
      
      
        ;


      
      
        122
      
      
                        }


      
      
        123
      
      
        124
      
      
                    }


      
      
        125
      
      
        catch
      
      
        126
      
      
                    {


      
      
        127
      
      
        return
      
      
        false
      
      
        ;


      
      
        128
      
      
                    }


      
      
        129
      
      
                }


      
      
        130
      
      
            }


      
      
        131
      
       }
    

ASP.NET SQLServer2005 數(shù)據(jù)庫(kù)備份與還原


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 波多野结衣在线观看3人 | 精品国产香蕉 | 久久精品国产第一区二区 | 国产伊人影院 | 日日干夜夜拍 | 国产一级精品视频 | 久热免费视频 | 成人永久免费视频网站在线观看 | 日本 在线播放 | 四虎1515| 国产福利午夜 | 亚洲va精品中文字幕动漫 | www.色片| 女性下面全部视频免费 | 亚洲毛片免费在线观看 | 狠狠热精品免费观看 | 福利网站在线播放 | 美女被羞羞的网站 | 欧美精品xxxⅹ欧美 欧美精品成人 | 亚洲精品中文字幕一区在线 | 午夜一级片 | 视频一区在线 | 日日插天天干 | 曰本毛片va看到爽不卡 | 青青青免费手机版视频在线观看 | 日本成本人观看免费视频fc2 | 午夜一级免费视频 | 999在线播放 | 日韩一区二区三区不卡 | 欧美日韩你懂的 | 国产九九视频在线观看 | 久久99国产精品久久99无号码 | 999久久精品国产 | 久久久99精品免费观看 | 国内拍拍自拍视频在线观看 | 日本成人毛片 | 国产色网址 | 欧美成人免费观看国产 | 久久精品99视频 | 一区二区不卡不卡一卡 | 国产一级高清视频 |