9///數據庫操作幫助類10///11publicclassDatabaseHelper12{13privateconststringSQL_DATABASE_BACK="BACKUPDATABASE{0}TODISK" />

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

ASP.NET SQLServer2005 數據庫備份與還原

系統 2306 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
      
      
        ///
      
      
         數據庫操作幫助類


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


      
      
         12
      
      
            {


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


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


      
      
         22
      
      
                {


      
      
         23
      
      
        this
      
      .MasterConnectionString =
      
         masterConnectionString;


      
      
         24
      
      
                }


      
      
         25
      
      
         26
      
      
        ///
      
      
        <summary>
      
      
         27
      
      
        ///
      
      
         master數據庫鏈接字符串


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


      
      
         30
      
      
         31
      
      
        ///
      
      
        <summary>
      
      
         32
      
      
        ///
      
      
         SQLServer數據庫備份


      
      
         33
      
      
        ///
      
      
        </summary>
      
      
         34
      
      
        ///
      
      
        <param name="connectionString">
      
      
        數據庫連接字符串
      
      
        </param>
      
      
         35
      
      
        ///
      
      
        <param name="backName">
      
      
        備份文件名稱,不包含后綴名
      
      
        </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
      
      
        //
      
      
        設置存放備份文件的完整物理路徑
      
      
         51
      
      
        string
      
       backPath = path + 
      
        "
      
      
        \\
      
      
        "
      
       + backName + 
      
        "
      
      
        .bak
      
      
        "
      
      
        ;


      
      
         52
      
      
         53
      
      
        //
      
      
        設置數據庫備份的T-SQL語句
      
      
         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
      
      
        //
      
      
        開始備份
      
      
         62
      
      
                                cmd.ExecuteNonQuery();


      
      
         63
      
      
         64
      
      
        return
      
      
        true
      
      
        ;


      
      
         65
      
      
                            }


      
      
         66
      
      
                        }


      
      
         67
      
      
                    }


      
      
         68
      
      
        catch
      
      
         69
      
      
                    {


      
      
         70
      
      
        return
      
      
        false
      
      
        ;


      
      
         71
      
      
                    }


      
      
         72
      
      
                }


      
      
         73
      
      
         74
      
      
        ///
      
      
        <summary>
      
      
         75
      
      
        ///
      
      
         SQLServer數據庫還原


      
      
         76
      
      
        ///
      
      
        </summary>
      
      
         77
      
      
        ///
      
      
        <param name="dbName">
      
      
        要進行還原的數據庫名稱
      
      
        </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
      
      
        //
      
      
        設置數據庫還原的T-SQL語句
      
      
         92
      
      
        string
      
       t_sql_restore = 
      
        string
      
      
        .Format(SQL_DATABASE_RESTORE, dbName, fullPath);


      
      
         93
      
      
         94
      
      
        //
      
      
        設置查詢指定數據庫的所有連接
      
      
         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
      
      
        //
      
      
        獲取指定數據庫所有連接
      
      
        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
      
      
        //
      
      
        執行還原操作
      
      
        116
      
                           cmd = 
      
        new
      
      
         SqlCommand(t_sql_restore, conn);


      
      
        117
      
      
                            cmd.ExecuteNonQuery();


      
      
        118
      
      
        119
      
      
        //
      
      
        清空當前連接池,這個很主要,如果不清空還原后第一次訪問會出現“在向服務器發送請求時發生傳輸級錯誤。 (provider: 共享內存提供程序, error: 0 - 管道的另一端上無任何進程。)”錯誤
      
      
        120
      
      
                            SqlConnection.ClearPool(conn);


      
      
        121
      
      
        return
      
      
        true
      
      
        ;


      
      
        122
      
      
                        }


      
      
        123
      
      
        124
      
      
                    }


      
      
        125
      
      
        catch
      
      
        126
      
      
                    {


      
      
        127
      
      
        return
      
      
        false
      
      
        ;


      
      
        128
      
      
                    }


      
      
        129
      
      
                }


      
      
        130
      
      
            }


      
      
        131
      
       }
    

ASP.NET SQLServer2005 數據庫備份與還原


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美视频一区 | 久久久久嫩草影院精品 | 99热久久免费精品首页 | 日韩欧美中文 | 一区二区视频在线观看 | 国产福利在线播放 | videos欧美丰满肥婆 | 荡女人人爱np粗口 | 91九色精品国产免费 | 精品日韩二区三区精品视频 | 国产成人99久久亚洲综合精品 | 色婷婷久久综合中文久久一本 | 老子影院午夜伦不卡亚洲 | 91免费国产在线观看尤物 | xxxx久久 | 国产成人高清一区二区私人 | 久久精品亚洲99一区二区 | 99爱在线观看精品视频 | 日韩高清一区 | 综合色在线观看 | 久久精品一区二区三区资源网 | 在线视频不卡国产在线视频不卡 | 欧美成人中文字幕dvd | 久久久久久久国产精品影院 | 亚洲欧美国产另类 | 黄色午夜影院 | 九九黄色网 | 精品免费久久久久久久 | 日韩毛片在线免费观看 | 天天靠天天擦天天摸 | 国产色av| 琪琪色在线视频 | 奇米久久 | 日韩欧美国产成人 | 日本伦理中文字幕 | 偷偷狠狠的日日高清完整视频 | 天天做天天爱天天怼 | 欧美成人一区二区三区不卡视频 | 玖玖在线免费视频 | 男人深夜网站 | 亚洲六月丁香婷婷综合 |