本文共 3651 字,大约阅读时间需要 12 分钟。
// 记得加 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.cnblogs.com/zengxiangzhan/archive/2009/09/23/1572283.html,如需转载请自行联系原作者