Heim  >  Artikel  >  Datenbank  >  web数据库备份恢复

web数据库备份恢复

WBOY
WBOYOriginal
2016-06-07 14:59:591377Durchsuche

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; using System.Data; using System.Configuration; using System.Collections

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
using System.Collections;

namespace WebApplication1
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            //引用Web.config的数据库连接字符串 优点:数据库移植的时候可直接对Web.config的数据库连接字符串中的IP进行更换.
            string con_str = ConfigurationManager.ConnectionStrings["testConnectionString"].ToString();
            SqlConnection conn = new SqlConnection(con_str);
            SqlCommand cmdBK = new SqlCommand();
            cmdBK.CommandType = CommandType.Text;
            cmdBK.Connection = conn;
            cmdBK.CommandText = @"backup database "+tbDB.Text.Trim()+@" to disk='..\Backup\"+tbBack.Text.Trim()+@".bak'" + " with init";
            try
            {
                conn.Open();
                cmdBK.ExecuteNonQuery();
                System.Web.HttpContext.Current.Response.Write("<script>alert('数据库备份或更新备份成功!');</script>");
            }
            catch (Exception)
            {
                System.Web.HttpContext.Current.Response.Write("<script>alert('抱歉,服务器连接失败!或者要备份的数据库不存在于服务器中,请先尝试新建或还原!');</script>");
            }
            finally
            {
                conn.Close();
            }

        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            //SqlConnection conn = new SqlConnection("Server=.;Database=master;User ID=sa;Password=1;Trusted_Connection=False");
            //conn.Open();

            //引用Web.config的数据库连接字符串 优点:数据库移植的时候可直接对Web.config的数据库连接字符串中的IP进行更换.
            string con_str = ConfigurationManager.ConnectionStrings["testConnectionString"].ToString();
            SqlConnection conn = new SqlConnection(con_str);
            try
            {
                conn.Open();

                //杀死所有正在使用要还原数据的数据库进程
                SqlCommand cmd = new SqlCommand(@"use master SELECT spid FROM sysprocesses,sysdatabases WHERE sysprocesses.dbid=sysdatabases.dbid AND sysdatabases.Name='" + tbHFDB0.Text.Trim() + "'", conn);

                SqlDataReader dr;

                dr = cmd.ExecuteReader();
                ArrayList list = new ArrayList();
                while (dr.Read())
                {
                    list.Add(dr.GetInt16(0));
                }
                dr.Close();
                for (int k = 0; k                 {
                    cmd = new SqlCommand(string.Format("KILL {0}", list[k]), conn);
                    cmd.ExecuteNonQuery();
                }

                SqlCommand cmdRT = new SqlCommand();
                cmdRT.CommandType = CommandType.Text;
                cmdRT.Connection = conn;
                cmdRT.CommandText = @"use master restore database " + tbHFDB0.Text.Trim() + @" from disk= '..\Backup\" + tbHFfile.Text.Trim() + @".bak'" + " WITH REPLACE";
                cmdRT.ExecuteNonQuery();
                System.Web.HttpContext.Current.Response.Write("<script>alert('数据库还原成功!');</script>");
            }
            catch (Exception)
            {
                System.Web.HttpContext.Current.Response.Write("<script>alert('抱歉,服务器连接失败!或者要还原的数据库备份不存在于服务器中,请先尝试备份;或者数据库目前运转正常而不必还原!');</script>");
            }
            finally
            {
                conn.Close();
            }
        }
    }
}

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn