//记得加 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);
}
}
{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);
}
}
版权声明:本文为zengzhan原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。