SqlTransaction——事務詳解
阿新 • • 發佈:2019-01-22
轉載:http://www.cnblogs.com/yank/archive/2008/07/20/1246896.html
事務處理基本原理
事務是將一系列操作作為一個單元執行,要麼成功,要麼失敗,回滾到最初狀態。在事務處理術語中,事務要麼提交,要麼中止。若要提交事務,所有參與者都必須保證對資料的任何更改是永久的。不論系統崩潰或是發生其他無法預料的事件,更改都必須是持久的。只要有一個參與者無法做出此保證,整個事務就會失敗。事務範圍內的所有資料更改將回滾到特定設定點。
事務將多個操作緊密聯絡到一起,這樣就能保證有聯絡的兩種操作的一致性、以及資料的完整性。舉個簡單例子:公司的員工資訊管理系統,現在要錄入資料,員工資訊系統假設只有部門、員工資訊兩張表,其中員工資訊表中有標識部門的欄位。在你錄入資訊的時候首先你得錄入部門資訊,再錄入員工資訊。具體實現程式碼:
private static void ExecuteSqlTransaction(string connectionString) { using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); SqlCommand command = connection.CreateCommand(); SqlTransaction transaction; transaction = connection.BeginTransaction("SampleTransaction"); command.Connection = connection; command.Transaction = transaction; try { command.CommandText ="Insert into Department (ID, Name) VALUES (1, '工程部')"; command.ExecuteNonQuery(); command.CommandText = "Insert into Users(ID, Name,DepartmentID) VALUES (1, 'xyz',1)"; command.ExecuteNonQuery(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); } } }