什麼是事務
事務其實就是于一個操作集,大多情況下為了保證資料的一緻性都會使用事務來處理,這些操作要麼都執行,要麼都不執行。事務的四個特性之一是原子性,其含義是指對于特定操作序列組成的事務,要麼全部完成,要麼就一件也不做。如果在事務處理的過程中,發生未知的不可預料的錯誤,如何保證事務的原子性呢?當事務中止時,必須執行復原操作,以便消除已經執行的操作對資料庫的影響。
事務基本寫法:
MySqlTransaction MySqlTran = null;
MySqlConnection MySqlCnt = null;
string sError = "";
try
{
#region 初始化連接配接資料
MySqlCnt = new MySqlConnection(MySQLHelper.connectionString);
MySqlCnt.Open();
MySqlTran = MySqlCnt.BeginTransaction();
#endregion
#region 業務代碼
#endregion
#region 送出與復原
if (MySqlTran != null && MySqlTran.Connection != null) MySqlTran.Commit();
}
catch (Exception ex)
{
if (MySqlTran != null && MySqlTran.Connection != null) MySqlTran.Rollback();
}
finally
{
if (MySqlTran != null) MySqlTran.Dispose();
if (MySqlCnt != null) { MySqlCnt.Close(); MySqlCnt.Dispose(); }
}
#endregion