1 private void btnBack_Click(object sender, EventArgs e)
2 {
3 string saveAway = @"C:\1.bak";
4 // string cmdText = @"backup database " + System.Configuration.ConfigurationSettings.AppSettings["dbName"] + " to disk='" + saveAway + "'";
5 string cmdText = @"backup database TestDemo to disk='" + saveAway + "'";
6 BakReductSql(cmdText, true);
7 }
8
9 private void btnRestore_Click(object sender, EventArgs e) //恢複
10 {
11 // string openAway = this.tbxReductLoad.Text.ToString().Trim();//讀取檔案的路徑
12 string openAway = @"c:\1.bak";//讀取檔案的路徑
13 //string cmdText = @"restore database " + System.Configuration.ConfigurationSettings.AppSettings["dbName"] + " from disk='" + openAway + "'";
14 string cmdText = @"restore database TestDemo from disk='" + openAway + "' with REPLACE;";
15 BakReductSql(cmdText, false);
16 }
17 /// <summary>
18 /// 對資料庫的備份和恢複操作,Sql語句實作
19 /// </summary>
20 /// <param name="cmdText">實作備份或恢複的Sql語句</param>
21 /// <param name="isBak">該操作是否為備份操作,是為true否,為false</param>
22 private void BakReductSql(string cmdText, bool isBak)
23 {
24 SqlCommand cmdBakRst = new SqlCommand();
25 SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=master;uid=sa;pwd=sa;");
26 try
27 {
28 conn.Open();
29 cmdBakRst.Connection = conn;
30 cmdBakRst.CommandType = CommandType.Text;
31 if (!isBak) //如果是恢複操作
32 {
33 string setOffline = "Alter database TestDemo Set Offline With rollback immediate ;";
34 string setOnline = " Alter database TestDemo Set Online With Rollback immediate;";
35 cmdBakRst.CommandText = setOffline + cmdText + setOnline;
36 }
37 else
38 {
39 cmdBakRst.CommandText = cmdText;
40 }
41 cmdBakRst.ExecuteNonQuery();
42 if (!isBak)
43 {
44 MessageBox.Show("恭喜你,資料成功恢複為所選文檔的狀态!", "系統消息");
45 }
46 else
47 {
48 MessageBox.Show("恭喜,你已經成功備份目前資料!", "系統消息");
49 }
50 }
51 catch (SqlException sexc)
52 {
53 MessageBox.Show("失敗,可能是對資料庫操作失敗,原因:" + sexc, "資料庫錯誤消息");
54 }
55 catch (Exception ex)
56 {
57 MessageBox.Show("對不起,操作失敗,可能原因:" + ex, "系統消息");
58 }
59 finally
60 {
61 cmdBakRst.Dispose();
62 conn.Close();
63 conn.Dispose();
64 }
65 }
備份檔案儲存在資料庫伺服器上
轉載于:https://www.cnblogs.com/9527y/p/4398526.html