2017-12-24 12 views
0

Winformsを使用してデータベースをバックアップする必要がある問題が発生しています。私は、このタスクを達成するためにサンプルSQLコードを見つけることができました。Winforms経由でSQL Serverデータベースをバックアップする方法C#

ここでの私のクエリ:

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など)

助けていただければ幸いです。

日付時刻はバックアップファイル名にもあることに注意してください。

答えて

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(); 
    } 
} 
関連する問題