1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | namespace BLL { public class SystemManager { private DAL.SystemService service = new DAL.SystemService(); /// <summary> /// 备份数据库 /// </summary> /// <param name="path"></param> /// <returns></returns> public string DataSoureBack( string path, string oName) { string demo = service.DataSoureBack(path); MODEL.BackMsg model= new MODEL.BackMsg { BackPath=path, Operated=oName, }; if ( string .IsNullOrEmpty(demo) || demo == "success" ) { model.OperatedResult = "成功" ; model.ReasonsFailure = "" ; } else { model.OperatedResult = "失败" ; model.ReasonsFailure = demo; } new BLL.BackMsgManager().AddBackMsg(model); return demo; } /// <summary> /// 还原数据库 /// </summary> /// <param name="path"></param> /// <returns></returns> public string RestoreData( string path) { return service.RestoreData(path); } } } |
namespace DAL { public class SystemService { public string DataSoureBack(string path) { string result = string.Empty; SqlConnection conn = new SqlConnection("Server=.;Database=master;User ID=sa;Password=Dhcs)_+;"); SqlCommand cmdBK = new SqlCommand(); cmdBK.CommandType = CommandType.Text; cmdBK.Connection = conn; cmdBK.CommandText = @"backup database lnsmB2B to disk='" + path + "' with init"; try { conn.Open(); cmdBK.ExecuteNonQuery(); result = "success"; } catch (Exception ex) { result = ex.Message; } finally { conn.Close(); conn.Dispose(); } return result; } public string RestoreData(string path) { string temp = string.Empty; SqlConnection conn = new SqlConnection("Server=.;Database=master;User ID=sa;Password=Dhcs)_+;Trusted_Connection=False"); conn.Open(); //KILL DataBase Process SqlCommand cmd = new SqlCommand("SELECT spid FROM sysprocesses ,sysdatabases WHERE sysprocesses.dbid=sysdatabases.dbid AND sysdatabases.Name='lnsmB2B'", conn); SqlDataReader dr; dr = cmd.ExecuteReader(); ArrayList list = new ArrayList(); while (dr.Read()) { list.Add(dr.GetInt16(0)); } dr.Close(); for (int i = 0; i < list.Count; i++) { cmd = new SqlCommand(string.Format("KILL {0}", list[i]), conn); cmd.ExecuteNonQuery(); } SqlCommand cmdRT = new SqlCommand(); cmdRT.CommandType = CommandType.Text; cmdRT.Connection = conn; cmdRT.CommandText = @"restore database lnsmB2B from disk='" + path + "'"; try { cmdRT.ExecuteNonQuery(); temp = "success"; } catch (Exception ex) { temp = ex.Message; } finally { conn.Close(); } return temp; } } }
namespace BLL { public class BackMsgManager { private DAL.BackMsgService service = new DAL.BackMsgService(); /// <summary> /// 返回所有的数据备份记录 /// </summary> /// <returns></returns> public IList<MODEL.BackMsg> GetBackMsg() { return service.GetBackMsg(); } /// <summary> /// 添加一条新的数据备份记录 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool AddBackMsg(MODEL.BackMsg model) { return service.AddBackMsg(model); } /// <summary> /// 删除指定ID的数据备份记录 /// </summary> /// <param name="id"></param> /// <returns></returns> public bool DeleteBackMsg(string id) { return service.DeleteBackMsg(id); } } }
/// <summary>
/// 获取网站数据备份路径
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public static string DataSoureBackPath()
{
return HttpContext.Current.Server.MapPath("~/" + ConfigurationSettings.AppSettings["DataBackUrl"] + DateTime.Now.ToString("yyyyMMddhhmmss") + "lnsmB2B.bak");
}
然后再 web.config里配置保存的路径
<appSettings>
<!-- 数据库备份路径 -->
<add key="DataBackUrl" value="admin/dataBack/" />
</appSettings>
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· 手把手教你更优雅的享受 DeepSeek
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现