c#中事務及回滾


程序一般在特殊數據的時候,會有數據上的同步,這個時候就用到了事物。閑話不多說,直接上代碼。

 1 public void UpdateContactTableByDataSet(DataSet ds, string strTblName)
 2         {
 3             try
 4             {
 5                 SqlDataAdapter myAdapter = new SqlDataAdapter();
 6                 SqlConnection conn = new SqlConnection("connection string");
 7                 SqlCommand myCommand = new SqlCommand("select * from strTblName", conn);
 8                 myAdapter.SelectCommand = myCommand;
 9                 SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myAdapter);
10 
11                 conn.Open();
12                 SqlTransaction myTrans = conn.BeginTransaction();
13                 myCommand.Transaction = myTrans;
14 
15                 try
16                 {
17                     myAdapter.Update(ds, strTblName);
18                     myTrans.Commit();
19                 }
20                 catch (Exception e)
21                 {
22                     try
23                     {
24                         myTrans.Rollback();//回滾並取消數據庫的更新
25                     }
26                     catch (SqlException ex)
27                     {
28                         if (myTrans.Connection != null)
29                         {
30                             Console.WriteLine("回滾失敗! 異常類型: " + ex.GetType());
31                         }
32                     }
33                 }
34                 finally
35                 {
36                     conn.Close();
37                 }
38 
39             }
40             catch (Exception ex)
41             {
42                 throw ex;
43             }
44         }

事務回滾主要用於提交失敗。(lock)用於處理並發事件。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM