zoukankan      html  css  js  c++  java
  • c# 备份还原 例子

    //记得加 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);
                }
            }
  • 相关阅读:
    pyspider 爬虫教程(一):HTML 和 CSS 选择器
    EF异常:对一个或多个实体的验证失败
    通过Excel生成PowerDesigner表结构设计
    C#几种常用的加密方式
    在powerdesigner中创建物理数据模型
    powerdesigner逆向工程,从数据库导出PDM
    PowerDesigner怎样才能在修改表的字段Name的时候Code不自动跟着变
    如何查看用pip命令安装的软件的安装路径
    ckeditor编辑的使用方法
    【转】[慢查优化]联表查询注意谁是驱动表 & 你搞不清楚谁join谁更好时请放手让mysql自行判定
  • 原文地址:https://www.cnblogs.com/zengxiangzhan/p/1572283.html
Copyright © 2011-2022 走看看