2017-12-24 14 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(); 
    } 
}