用戶端備份與還原資料庫(Asp.NET)

來源:互聯網
上載者:User

Database Backup和還原,在項目開發中很多客戶都需要的功能。他們希望,點擊備份按鈕時,就可以把備份的資料庫下載到本地儲存。點擊還原按鈕時,把本地的資料庫還原到伺服器上。

雖然這樣很不安全,但是在區域網路內也是很有必要的。

這裡運用到了幾個知識點。

1:Database Backup,和還原(這裡指Sql server)

2:檔案的上傳和下載。(為什麼要用到檔案上傳和下載呢?這裡有個很值得注意的問題,而且我在做項目時也經常會疏忽。我們在測試Database Backup和還原時,都是在本地進行的。也就是說,我們的電腦既做了用戶端,又做了伺服器。所以不管你怎麼測試,只要代碼沒有寫錯就會成功的。一旦你在伺服器上發布之後,再調試時就會出現,Database Backup在了伺服器上,而且資料庫還原也會失敗。所以,這個時候你需要把資料庫下載到本地儲存,還原時把資料上傳到伺服器上,利用sql讀取伺服器上的路徑執行還原作業。)

 

下面是My Code。我把備份與還原封裝在一個類裡

public class OutData

{

  

   /// <summary>
        /// 備份資料庫

   ///XianNingDSH 是我測試的資料庫名
        /// </summary>
        public static int backData(string name)
        {

            string sqlStr = "use XianNingDSH; backup database XianNingDSH to disk='" + name+"'";
            return ExecuteSql(sqlStr);

        }
        /// <summary>
        ///還原資料庫
        /// </summary>
        public static int reBackData(string name)
        {

            string sqlStr = "use master;restore database XianNingDSH from disk='" + name + "'";
            return ExecuteSql(sqlStr);
        }

}

在前台:

 

  protected void Button1_Click(object sender, EventArgs e)
        {
            //備份資料庫

     //隨機產生備份資料庫名
            string filename = HttpUtility.UrlDecode(Request.Cookies["username"].Value) + DateTime.Now.Ticks.ToString() + "Database Backup.bak";

            try
            {
                OutData(Server.MapPath("..") + "//UploadFile//" + filename);
                addNote(filename); //把備份的資料完全路徑儲存到XML檔案裡
                Jscript.AlertAndRedirect("備份資料成功!", "ImportData.aspx");

            }
            catch (Exception me)
            {
                Jscript.Alert(me.Message);
            }
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            //還原資料庫

            string dric = Server.MapPath("..") + "//UploadFile//" + FileUpload1.FileName;
            FileUpload1.SaveAs(dric); //上傳還原資料庫到伺服器上
            try
            {
                    OutData(dric);
                    Jscript.AlertAndRedirect("還原資料庫成功!", "ImportData.aspx");
             }
            catch
            {
                Jscript.AlertAndRedirect("還原資料庫失敗!", "ImportData.aspx");
            }
        }

 

在處理下載伺服器上的資料庫檔案時,不是以檔案流的形式輸出到本地的方式。而是把儲存的資料庫檔案路徑儲存到xml檔案裡(dataConfig.xml)。

<?xml version="1.0" encoding="utf-8"?>
<dataconfig>
  <data>
    <time>備份時間</time>
    <uname>備份人</uname>
    <url>下載</url>
  </data>
  <data>
    <time>2009-11-5 14:43:34</time>
    <uname>admin</uname>
    <url>admin633930290128125000備份.bak</url>
  </data>
  <data>
    <time>2009-11-5 14:46:59</time>
    <uname>admin</uname>
    <url>admin633930292183593750備份.bak</url>
  </data>
</dataconfig>

所以這裡還需要用到對xml的檔案的處理。我將在下篇部落格裡講述關於對Xml檔案的增刪改查功能。

還要點要注意的時,如果我們是用VSS管理我們的項目時,需要對操作的xml檔案屬性設定為可讀寫。

下面是我的。

 

 

 

 

 

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.