Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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();
            }
        }