如何通过Winforms C#备份SQL Server数据库

问题描述 投票:0回答:3

我遇到了一个需要通过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'";

我不知道接下来该怎么做。在这种情况下我应该使用什么? (ExecuteScalarExecuteNonQuery ..等)

任何帮助,将不胜感激。

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

c# sql-server database-backups
3个回答
0
投票

添加这些行将执行:

CON .Open();
SqlCommand NewCommand = new SqlCommand(Sql, CON);
NewCommand.ExecuteNonQuery();
CON .Close();

2
投票

您定义要执行的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();
}

1
投票

一般代码:

using (var conn = new SqlConnection(connString))
{
    conn.Open();
    using (var comm = conn.CreateCommand())
    {
        comm.CommandType = CommandType.Text;
        comm.CommandText = "BACKUP DATABASE...";
        comm.ExecuteNonQuery();
    }
}
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.