1. 程式人生 > >ado.net 事務 處理 鎖定資料行

ado.net 事務 處理 鎖定資料行

using(SqlConnection   conn   =   SqlConnection(MyConnectionString))   {  
 SqlCommand   cmd1   =   conn.CreateCommand();
 cmd1.CommandText   =   "UPDATE   NewsTable   SET   Hits   =   Hits   +   1   WHERE   NewsID   =   @NewsID ";
 conn.Open();
 using(SqlTransaction   trans   =   conn.BeginTransaction(IsolationLevel.RepeatableRead))   {   //   隔離級別:對讀取的資料加鎖,防止不可重複的讀取,但是仍可以有幻像行
  cmd1.Trasnaction   =   trans;
  try   {
   cmd1.ExecuteNonQuery();   //   更新
   trans.Commit();   //   提交
  }   catch   {
   trans.Rollback();   //   回滾
   throw;
  }
 }
}