点击按钮
为了更好的实现自动化,点击按钮可达到手动备份数据库,有效率,简单,快捷
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(); }
控制器
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); //根据自己可添加日志记录具体是哪里的错误 } }