点击下载自动备份最新sqlserver 数据库

    点击按钮  点击下载自动备份最新sqlserver 数据库

    为了更好的实现自动化,点击按钮可达到手动备份数据库,有效率,简单,快捷

点击下载自动备份最新sqlserver 数据库
    public const string DbName = "需要备份的数据库名称";
        private static SqlConnection SqlConnection = new SqlConnection("data source=.;Initial Catalog=master;integrated security=SSPI;");
        private static string SqlBackup = "BACKUP DATABASE PersonnelManagementDB TO DISK = '" + AppDomain.CurrentDomain.BaseDirectory+ "DB\\" + DbName + ".bak'";
        private static string SqlRestore = "Alter database "+ DbName + " Set Offline With rollback immediate RESTORE DATABASE  " + DbName + " FROM DISK = '" + AppDomain.CurrentDomain.BaseDirectory + "DB\\" + DbName + ".bak' Alter database " + DbName + " Set Online With Rollback immediate";
        private SqlCommand SqlCommandBackup = new SqlCommand() { Connection = SqlConnection, CommandType = CommandType.Text, CommandText = SqlBackup };
        private SqlCommand SqlCommandRestore = new SqlCommand() { Connection = SqlConnection, CommandType = CommandType.Text, CommandText = SqlRestore };

        public string  DbBackup()
        {
            SqlConnection.Open();
            try
            {
                SqlCommandBackup.ExecuteNonQuery();  //备份
            }
            catch (Exception e)
            {
                string str = e.Message;
                SqlConnection.Close();
                return str;
            }
            SqlConnection.Close();
            return "";
        }
   public void DbRestore()
        {
            SqlConnection.Open();
            try
            {
                SqlCommandRestore.ExecuteNonQuery(); //还原
            }
            catch (Exception e)
            {
                string str = e.Message;
                SqlConnection.Close();
            }
            SqlConnection.Close();
        }
View Code

 控制器

点击下载自动备份最新sqlserver 数据库
public void DownloadFile()
        {
            try
            {
                DBSqlserverUtils utils = new DBSqlserverUtils();
                var str = DbBackup();//备份数据库
                if (string.IsNullOrEmpty(str))
                {
                    string fileName = DBSqlserverUtils.DbName + ".bak";
                    string filePath = Path.Combine(Server.MapPath("~/DB/"), fileName);
                    if (System.IO.File.Exists(filePath))
                    {
                        HttpResponse response = System.Web.HttpContext.Current.Response;
                        response.Clear();
                        response.ClearHeaders();
                        response.ClearContent();
                        response.Buffer = true;
                        response.AddHeader("content-disposition", string.Format("attachment; FileName={0}", fileName));
                        response.Charset = "GB2312";
                        response.ContentEncoding = Encoding.GetEncoding("GB2312");
                        response.ContentType = MimeMapping.GetMimeMapping(fileName);
                        response.WriteFile(filePath);
                        response.Flush();
                        response.Close();
                    }
                

                }
            }
            catch (Exception ex)
            {
                CLogServiceUtils.RunLogAdd("DownloadFile数据库备份异常:" + ex.Message);  //根据自己可添加日志记录具体是哪里的错误
            }
        }
View Code

 

上一篇:C#连接数据库的一些鲜为人知的方法


下一篇:SQL Server数据库 857万条数据导入用时4分钟。【数据库访问类】