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;
}
}
}
ado.net 事務 處理 鎖定數據行
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.