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 事务 处理 锁定数据行
最新推荐文章于 2024-07-25 16:00:00 发布