ASP.NET备份数据库

XphteR 2013-03-08 05:50:51
ASP.NET响应用户的请求(例如:点击备份按钮)在后台启动备份数据库的操作并立即返回,用户在前台通过AJAX可以得到备份成功或者失败的消息。
该如何设计和实现这样的功能呢?望高手解答
...全文
177 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
leujunbao 2013-03-19
  • 打赏
  • 举报
回复
使用ajax异步操作,如采用同步的话就会出现画面卡死的情况,假如数据库比较大,那么备份时间是比较长的
零-点 2013-03-19
  • 打赏
  • 举报
回复
引用 4 楼 XphteR 的回复:
引用 3 楼 zhang399401 的回复:为什么要点击就立即返回呢?等返回备份是否成功在返回不行吗? 数据库大的时候,备份操作可能持续好几分钟,这样的话一是用户体验不好,二是ASP.NET会超时。
那你返回还不是一样要等,可以给用户展现一个进度条,不会让用户盲目的等
winner2050 2013-03-19
  • 打赏
  • 举报
回复
备份数据库使用 SQLDMO,都快成了思维定势了。 一个简单的sql代码就可以备份了。
hyrjlzw 2013-03-19
  • 打赏
  • 举报
回复
可以单击“备份”后动态的图片弹出(假进度条),这样用户感觉系统在运转,体验好点,备份完图片隐藏
XphteR 2013-03-19
  • 打赏
  • 举报
回复
引用 9 楼 hengwang007 的回复:
在远程系统实现的话,恐怕用户体验会很差的。用WINFORM的吧,还不如用SQL SERVER等数据库的客户端管理器来备份呢。
我也想到了,数据量太大的话,WEB中备份数据库的体验肯定不好。无奈,客户想要这个功能。
F15Eagle 2013-03-19
  • 打赏
  • 举报
回复
在远程系统实现的话,恐怕用户体验会很差的。用WINFORM的吧,还不如用SQL SERVER等数据库的客户端管理器来备份呢。
是你_不懂 2013-03-19
  • 打赏
  • 举报
回复
#region 创建备份
    protected void LinkButton1_Click(object sender, EventArgs e)
    {
        //创建文件夹 
        string VMdata = "DB";
        string address = Server.MapPath("~\\Data\\");
        DirectoryInfo dir = new DirectoryInfo(VMdata);
        if (!dir.Exists == false)
        {
            ui.Alert(this, "此数据库不存在");
        }
        else
        {
            //判断文件夹是否存在 
            if (!System.IO.Directory.Exists(address))
            {
                //创建文件夹 
                System.IO.Directory.CreateDirectory(address);
            }
            else
            {
                //调用备份数据库的方法
                BackUpDB1(address);
                ui.Alert(this, "数据库备份成功");
                //重新绑定
                CreateTable();
            }
        }
    }
    #endregion

    #region 备份数据库(本地备份)
    public string BackUpDB1(string backAddress)
    {
        try
        {
            StringBuilder sql = new StringBuilder();
            string DataName = "DB" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".bak";
            //备份后的文件名称为原数据库名称+时分秒
            sql.Append("backup database DB to disk='" + backAddress + DataName + "'");
            db.ExecuteReader(sql.ToString());
            return DataName;
        }
        catch (Exception)
        {
            throw;
        }
    }
    #endregion
YshuuiNew 2013-03-18
  • 打赏
  • 举报
回复
那如果不成功呢?
XphteR 2013-03-18
  • 打赏
  • 举报
回复
引用 3 楼 zhang399401 的回复:
为什么要点击就立即返回呢?等返回备份是否成功在返回不行吗?
数据库大的时候,备份操作可能持续好几分钟,这样的话一是用户体验不好,二是ASP.NET会超时。
零-点 2013-03-08
  • 打赏
  • 举报
回复
为什么要点击就立即返回呢?等返回备份是否成功在返回不行吗?
XphteR 2013-03-08
  • 打赏
  • 举报
回复
引用 1 楼 gxingmin 的回复:
http://www.cnblogs.com/jinzhao/archive/2009/10/09/1579473.html ajax调用成功,返回成功信息,前台判断返回信息给出相应的提示
如何在ASP.NET后台启动备份操作然后立即返回,并且为后续的AJAX调用提供备份是否完成的数据呢?
gxingmin 2013-03-08
  • 打赏
  • 举报
回复
http://www.cnblogs.com/jinzhao/archive/2009/10/09/1579473.html ajax调用成功,返回成功信息,前台判断返回信息给出相应的提示

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧