数据库的备份

来源:互联网 发布:企业淘宝开店流程步骤 编辑:程序博客网 时间:2024/06/11 17:41

这是学长写的数据库备份 我还没完全理解 先贴上

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Data;using System.Data.Sql;using System.Data.SqlClient;namespace DAL{    public class BackUpDAL    {        public SqlConnection conn = null;        //public SqlConnection connmaster = null;        public SqlCommand cmd = null;        //public SqlCommand cmdmaster = null;        public BackUpDAL()        {            conn = new SqlConnection(@"server=.;DataBase=JZT_SignUp;uid=sa;pwd=123456");            cmd = new SqlCommand();            cmd.Connection = conn;        }        //备份数据库        public bool BackUp()        {            try            {                conn.Close();                conn.Open();                string path = "D:\\Back\\JZT_SignUp.bak";                string strsql = @"use master;backup database JZT_SignUp to disk =N" + "'" + path + "'" + "with format ";                cmd = new SqlCommand(strsql, conn);                cmd.ExecuteNonQuery();                conn.Close();            }            catch (Exception e)            {                return false;            }            return true;        }        //还原数据库        public bool RoolBack()        {            //更换连接            conn = new SqlConnection(@"server=.;database=master;uid=sa;pwd=123456");            //关闭当前数据库            string closestr = "alter database [JZT_SignUp] set offline with rollback immediate";//先关闭数据库            cmd.Connection = conn;            conn.Close();            conn.Open();            cmd = new SqlCommand(closestr, conn);            cmd.ExecuteNonQuery();            conn.Close();            string path = "D:\\Back\\JZT_SignUp.bak";//源路径            string mdfsavepath = "D:\\Back1\\JZT_SignUp.mdf";            string logsavepath = "D:\\Back1\\JZT_SignUp.log";            //string strsql = "restore database JZT_SignUp from disk= N'D:\\Back\\JZT_SignUp.bak' WITH MOVE JZT_SignUp to N'D:\\Back1\\JZT_SignUp.mdf' MOVE JZT_SignUp_Log to N'D:\\Back1\\JZT_SignUp.log'";            string strsql = @"restore database JZT_SignUp  from disk=N" + "'" + path + "'";            strsql += "With Move 'JZT_SignUp' to N" + "'" + mdfsavepath + "'"+",";            strsql += "MOVE 'JZT_SignUp_log' to N" + "'" + logsavepath + "',REPLACE,recovery";            try            {                conn.Close();                conn.Open();                cmd = new SqlCommand(strsql, conn);                cmd.ExecuteNonQuery();                conn.Close();                //打开,继续使用                string openstr = "alter database [JZT_SignUp] set online";//再打开数据库                conn.Open();                cmd = new SqlCommand(openstr, conn);                cmd.ExecuteNonQuery();                conn.Close();                conn = new SqlConnection(@"server=.;database=master;uid=sa;pwd=123456");            }            catch(Exception e)            {            return false;            }            return true;        }    }}