当前位置 : 主页 > 网络编程 > net编程 >

c# 备份还原 例子

来源:互联网 收集:自由互联 发布时间:2023-10-08
//记得加folderBrowserDialog1openFileDialog1控件 usingSystem.Data.SqlClient;//连接数据库公共变量 namespaceWindowsApplication1.GoodMenhod { classgetSqlConnection { stringsql="DataSource=win7-pc;database=Kc;uid=sa;pwd=sa"; SqlCon

//记得加 folderBrowserDialog1   openFileDialog1      控件

using System.Data.SqlClient;   //连接数据库   公共变量

namespace WindowsApplication1.GoodMenhod

{

    class getSqlConnection

    { 

        string sql = "Data Source=win7-pc;database=Kc;uid=sa;pwd=sa";

        SqlConnection conn; 


        public SqlConnection GetCon()

        {

           conn = new SqlConnection(sql);

           conn.Open();

           return conn;

        }


    }

}



using System.Data.SqlClient;

using WindowsApplication1.GoodMenhod;  //引用命名空间

namespace WindowsApplication1

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)  //打开 备份路径

        {

            if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)

            {

                txtPath.Text = folderBrowserDialog1.SelectedPath.ToString();

            }

        }

        private void button2_Click(object sender, EventArgs e)  //备份名称  保存 

        {

            try

            {

                if (txtPath.Text != "" )

                {

                    getSqlConnection geCon = new getSqlConnection();

                    SqlConnection con = geCon.GetCon();

                    string strBacl = "backup database Kc to disk='" + txtPath.Text.Trim() + "\\" + txtName.Text.Trim() + ".bak'";

                    SqlCommand Cmd = new SqlCommand(strBacl, con);

                    if (Cmd.ExecuteNonQuery() != 0)

                    {

                        MessageBox.Show("数据备份成功!", "提示框", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        this.Close();

                    }

                    else

                    {

                        MessageBox.Show("数据备份失败!", "提示框", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    }

                }

                else

                {

                    MessageBox.Show("请填写备份的正确位置及文件名!", "提示框", MessageBoxButtons.OK, MessageBoxIcon.Information);

                }// end 

            }

            catch (Exception ee)

            {

                MessageBox.Show(ee.Message.ToString());

            }


        }

    }

}



   private void button3_Click(object sender, EventArgs e)  //打开 将要还原的文件

        {

            openFileDialog1.FilterIndex = 0;

            openFileDialog1.FileName = "";

            openFileDialog1.Filter = "txt files (*.bak)|*.bak|All files (*.*)|*.*";


            if (openFileDialog1.ShowDialog() == DialogResult.OK)

            {

                textPaht.Text = openFileDialog1.FileName.ToString();

            }

        }


private void button4_Click(object sender, EventArgs e)   //还原

        {

             if (textPaht.Text != "")

            {

                getSqlConnection geCon = new getSqlConnection();

                SqlConnection con = geCon.GetCon();

                if (con.State == ConnectionState.Open)

                {

                    con.Close();

                }

                //连接的数据库是master,所以要初始化新的连接字符串

                string DateStr = "Data Source=win7-pc;Database=master;User id=sa;PWD=sa";

                SqlConnection conn = new SqlConnection(DateStr);

                conn.Open();

                //-------------------杀掉所有连接 db_CSManage 数据库的进程--------------

               // string sql = " SELECT spid FROM master..sysprocesses WHERE dbid=db_id('" + strDBName + "')";

                string strSQL = "select spid from master..sysprocesses where dbid=db_id( 'Kc') ";//读取连接当前数据库的进程

                SqlDataAdapter Da = new SqlDataAdapter(strSQL, conn);

                DataTable spidTable = new DataTable();

                Da.Fill(spidTable);

                SqlCommand Cmd = new SqlCommand();

                Cmd.CommandType = CommandType.Text;

                Cmd.Connection = conn;

                for (int iRow = 0; iRow <= spidTable.Rows.Count - 1; iRow++)

                {

                    Cmd.CommandText = "kill " + spidTable.Rows[iRow][0].ToString();   //强行关闭用户进程 

                    Cmd.ExecuteNonQuery();

                }

                conn.Close();

                conn.Dispose();

                //--------------------------------------------------------------------

                SqlConnection sqlcon = new SqlConnection(DateStr);

                sqlcon.Open();

                SqlCommand sqlCmd = new SqlCommand("backup database Kc to disk='" + textPaht.Text.Trim() + "' restore database Kc from disk='" + textPaht.Text.Trim() + "'", sqlcon);

                sqlCmd.ExecuteNonQuery();

                sqlCmd.Dispose();

                sqlcon.Close();

                sqlcon.Dispose();

                MessageBox.Show("数据还原成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

                MessageBox.Show("为了必免数据丢失,在数据库还原后将关闭整个系统。");

                Application.Exit();

            }

            else

            {

                MessageBox.Show("请选择备份文件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);

            }

        }


【文章转自 响水网页制作 http://www.1234xp.com/xiangshui.html 网络转载请说明出处】
上一篇:asp.net 图片 上传 打水印 高质量缩略图
下一篇:没有了
网友评论