C# 如何通过WinC表单备份SQL Server数据库#

C# 如何通过WinC表单备份SQL Server数据库#,c#,sql-server,database-backups,C#,Sql Server,Database Backups,我遇到了一个需要通过Winforms备份数据库的问题。为了完成这项任务,我设法找到了一个示例SQL代码 我的问题是: SqlConnection CON = new SqlConnection("Data Source=DBS\\DB;Initial Catalog=" + metroTextBox1.Text + ";Integrated Security=True"); Sql = "BACKUP DATABASE " + metroComboBox1.Text + " TO DISK =

我遇到了一个需要通过Winforms备份数据库的问题。为了完成这项任务,我设法找到了一个示例SQL代码

我的问题是:

SqlConnection CON = new SqlConnection("Data Source=DBS\\DB;Initial Catalog=" + metroTextBox1.Text + ";Integrated Security=True");

Sql = "BACKUP DATABASE " + metroComboBox1.Text + " TO DISK = '" + metroTextBox4.Text + "\\" + metroComboBox1.Text + "-" + DateTime.Now.Ticks.ToString() + ".bak'";
我不知道下一步怎么办。在这个场景中我应该使用什么?(
ExecuteScalar
ExecuteNonQuery
等)

任何帮助都将不胜感激


请注意,备份文件名中也有日期时间。

定义要执行的SQL命令,然后实例化一个
SqlCommand
。由于SQL语句不应返回任何数据(结果集等),请使用
ExecuteNonQuery

string Sql = "BACKUP DATABASE " + metroComboBox1.Text + " TO DISK = '" + metroTextBox4.Text + "\\" + metroComboBox1.Text + "-" + DateTime.Now.Ticks.ToString() + ".bak'";

using(SqlConnection CON = new SqlConnection("Data Source=DBS\\DB;Initial Catalog=" + metroTextBox1.Text + ";Integrated Security=True"))
using(SqlCommand cmdBackup = new SqlCommand(Sql, CON))
{   
    // open connection, execute command, close connection
    CON.Open();
    cmdBackup.ExecuteNonQuery();
    CON.Close();
}
一般守则:

using (var conn = new SqlConnection(connString))
{
    conn.Open();
    using (var comm = conn.CreateCommand())
    {
        comm.CommandType = CommandType.Text;
        comm.CommandText = "BACKUP DATABASE...";
        comm.ExecuteNonQuery();
    }
}