数据库的备份

20 篇文章 0 订阅

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

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;
        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值