通过按钮单击从Windows窗体应用程序备份SQL Server数据库

我需要通过单击Windows应用程序表单上的按钮来备份数据库。 我正在使用C#在Visual Studio 2012上开发它。

在Windows站点中,我学会了使用Transact SQL进行备份。 我在visual studio中的Transact SQL编辑器中尝试过它。

这是我使用的SQL事务处理:

USE TestDB; GO BACKUP DATABASE TestDB TO DISK = 'E:\aa.Bak' WITH FORMAT, MEDIANAME = 'Z_SQLServerBackups', NAME = 'Full Backup of AdventureWorks2012'; GO 

我想在C#中执行它。

每当我单击备份按钮时,我想创建一个备份文件并替换任何现有的备份文件。 ‘FORMAT’参数是否可以达到此目的?
我可以将参数TO DISK (创建备份文件的位置)设置到外部硬盘或笔式驱动器中的某个位置吗?

我可以恢复数据库如下:

 private void button4_restore(object sender, EventArgs e)
{ con.Open();
string str = "USE master;";
string str1= "ALTER DATABASE TestDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE;"; string str3="RESTORE DATABASE TestDB FROM DISK = 'E:\\aa.Bak' ";
SqlCommand cmd = new SqlCommand(str, con);
SqlCommand cmd1 = new SqlCommand(str1, con);
SqlCommand cmd3 = new SqlCommand(str3, con);
cmd.ExecuteNonQuery();
cmd1.ExecuteNonQuery();
cmd3.ExecuteNonQuery();
MessageBox.Show("RECOVERED");
con.Close(); }

当我像这样恢复时,数据库将完全恢复到备份文件。 有没有办法可以将.Bak文件中的数据附加到当前数据库中的现有数据中。

如果单击按钮“button_backup”,则以下代码将数据库“TestDB”备份到文件“E. \ backupfile.Bak”。

 private void button_backup_Click(object sender, EventArgs e) { //con is the connection string con.Open(); string str = "USE TestDB;"; string str1="BACKUP DATABASE TestDB TO DISK = 'E:\\backupfile.Bak' WITH FORMAT,MEDIANAME = 'Z_SQLServerBackups',NAME = 'Full Backup of Testdb';"; SqlCommand cmd1 = new SqlCommand(str, con); SqlCommand cmd2 = new SqlCommand(str1, con); cmd1.ExecuteNonQuery(); cmd2.ExecuteNonQuery(); MessageBox.Show("success"); con.Close(); }