客户端备份和还原数据库(Asp.NET)

it2022-06-28  79

数据库备份和还原,在项目开发中很多客户都需要的功能。他们希望,点击备份按钮时,就可以把备份的数据库下载到本地保存。点击还原按钮时,把本地的数据库还原到服务器上。

虽然这样很不安全,但是在局域网内也是很有必要的。

这里运用到了几个知识点。

1:数据库备份,和还原(这里指Sql server)

2:文件的上传和下载。(为什么要用到文件上传和下载呢?这里有个很值得注意的问题,而且我在做项目时也经常会疏忽。我们在测试数据库备份和还原时,都是在本地进行的。也就是说,我们的电脑既做了客户端,又做了服务器。所以不管你怎么测试,只要代码没有写错就会成功的。一旦你在服务器上发布之后,再调试时就会出现,数据库备份在了服务器上,而且数据库还原也会失败。所以,这个时候你需要把数据库下载到本地保存,还原时把数据上传到服务器上,利用sql读取服务器上的路径执行还原操作。)

 

下面是我的代码。我把备份和还原封装在一个类里

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() + "数据库备份.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文件属性设置为可读写。

下面是我的截图。

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/yoolonet/archive/2009/12/04/1616702.html


最新回复(0)