2017-12-24 1 views
0

Ich bin auf ein Problem fest, wo ich meine Datenbank über WinForms sichern muss. Ich habe einen Beispiel-SQL-Code gefunden, um diese Aufgabe zu erfüllen.So sichern Sie SQL Server-Datenbank über Winforms C#

Meine Frage hier:

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'"; 

Ich habe keine Ahnung, wie man weiter vorgehen. Was sollte ich in diesem Szenario verwenden? (ExecuteScalar, ExecuteNonQuery .. etc)

Jede Hilfe wäre willkommen.

Beachten Sie, dass die Datumszeit auch im Namen der Sicherungsdatei angegeben ist.

Antwort

0

diese Zeilen Hinzufügen tun:

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

Sie definieren den auszuführenden SQL-Befehl und instanzieren dann eine SqlCommand. Da die SQL-Anweisung nicht erwartet wird, keine Daten zurückgegeben (ein Ergebnismenge etc.), verwenden 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

Der allgemeine Code:

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