/// <summary> /// 数据库备份 /// </summary> /// <param name="context"></param> /// <param name="msg"></param> /// <param name="P1"></param> /// <param name="P2"></param> /// <param name="UserInfo"></param> public void DBBACKUP(HttpContext context, Msg_Result msg, string P1, string P2, JH_Auth_UserB.UserInfo UserInfo) { string strDBName = CommonHelp.GetConfig("DBBACKNAME"); string path = context.Server.MapPath("/"); if (!Directory.Exists(path + "/dbbackup/")) { Directory.CreateDirectory(path + "/dbbackup/"); } path = path + "/dbbackup/db_" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".bak"; string strsql = "backup database " + strDBName + " to disk='" + path + "';"; new JH_Auth_QYB().ExsSql(strsql); FileInfo fi = new FileInfo(path); SZHL_DBGL sd = new SZHL_DBGL(); sd.ComId = UserInfo.QYinfo.ComId; sd.Type = "1"; sd.Name = fi.Name; sd.Path = fi.FullName; sd.Size = (fi.Length / 1024.00).ToString("F2"); sd.CRUser = UserInfo.User.UserName; sd.CRDate = DateTime.Now; new SZHL_DBGLB().Insert(sd); }
/// <summary> /// 数据库还原 /// </summary> /// <param name="context"></param> /// <param name="msg"></param> /// <param name="P1"></param> /// <param name="P2"></param> /// <param name="UserInfo"></param> public void DBRESTORE(HttpContext context, Msg_Result msg, string P1, string P2, JH_Auth_UserB.UserInfo UserInfo) { string strDBName = CommonHelp.GetConfig("DBBACKNAME"); ArrayList list = new ArrayList(); SqlConnection conn = new SqlConnection(); conn.ConnectionString = new JH_Auth_QYB().GetDBString().Replace(strDBName, "master"); conn.Open(); try { SqlCommand cmd = new SqlCommand("use master; select distinct spid FROM sysprocesses ,sysdatabases Where sysprocesses.dbid=sysdatabases.dbid AND sysdatabases.Name='" + strDBName + "'", conn); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { list.Add(dr.GetInt16(0)); } dr.Close(); conn.Close(); for (int i = 0; i < list.Count; i++) { conn.Open(); SqlCommand cmd1 = new SqlCommand(string.Format("KILL {0}", list[i].ToString()), conn); cmd1.ExecuteNonQuery(); conn.Close(); } conn.Open(); SqlCommand cmd2 = new SqlCommand("restore database " + strDBName + " from disk='" + P1 + "' with replace ;", conn); cmd2.ExecuteNonQuery(); conn.Close(); FileInfo fi = new FileInfo(P1); SZHL_DBGL sd = new SZHL_DBGL(); sd.ComId = UserInfo.QYinfo.ComId; sd.Type = "2"; sd.Name = fi.Name; sd.Path = fi.FullName; sd.Size = (fi.Length / 1024.00).ToString("F2"); sd.CRUser = UserInfo.User.UserName; sd.CRDate = DateTime.Now; new SZHL_DBGLB().Insert(sd); } catch { msg.ErrorMsg = "还原失败"; } finally { conn.Close(); } }