//
记得加 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);
}
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,如需转载请自行联系原作者