首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 備份 SQL Server 資料庫實作範例

     編輯:關於ASP.NET

網站後台常需提供資料庫手動備份功能。雖然 SQL Server Agent 可排程自動備份,但透過 ASP.NET 程式碼觸發備份能整合權限控管與使用者介面。本文提供完整的備份按鈕點擊事件程式碼範例。

核心備份語法

關鍵在於 T-SQL BACKUP DATABASE 指令:

BACKUP DATABASE [資料庫名稱] TO DISK = '備份檔完整路徑'

完整程式碼範例 (C#)

protected void Button1_Click(object sender, EventArgs e)
{
    // 產生帶時間戳記的檔名:WebJake202401151430.bak
    string newname = "WebJake" + DateTime.Now.ToString("yyyyMMddHHmm") + ".bak";
    
    SqlConnection cn = DB.createCon(); // 假設為自訂連線工廠方法
    string nepath = Server.MapPath("~/DataBack/") + newname;
    string sql = "BACKUP DATABASE WebJake TO DISK = '" + nepath + "'";
    
    SqlCommand cmd = new SqlCommand(sql, cn);
    try
    {
        cn.Open();
        cmd.ExecuteNonQuery();
        
        // 備份成功:提供下載連結
        HyperLink1.Text = "已成功備份至伺服器:" + nepath + " 請點擊下載!";
        HyperLink1.NavigateUrl = "~/DataBack/" + newname;
        HyperLink1.Visible = true;
    }
    catch (Exception ex)
    {
        Label1.Text = "備份失敗:" + ex.Message;
        Label1.Visible = true;
    }
    finally
    {
        cmd.Dispose();
        cn.Close();
        cn.Dispose();
    }
}

關鍵實作細節

  • 使用 DateTime.Now.ToString("yyyyMMddHHmm") 產生唯一檔名,避免覆蓋
  • Server.MapPath 將虛擬路徑轉為伺服器實體路徑
  • 備份完成後透過 HyperLink 提供直接下載,方便使用者離線保存
  • try-catch-finally 確保連線資源正確釋放

注意:執行備份的資料庫使用者需具備 db_backupoperator 角色權限;備份目錄需授予 ASP.NET 執行身分(如 NETWORK SERVICE 或 ASPNET)寫入權限。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved