日期:2014-05-18  浏览次数:20398 次

菜鸟提问 关于事务锁 等待问题
我想开启个事务 就是想让下面的操作只能一个事务操作 意思就是如果有两个并发连接的话 要等第一个事务操作Commit后 第二个事务再操作 也就是第一个事务在操作的时候第二个事务应该是等待
可是我测试了下 并没有这样 还是一起操作了。。。
是不是我把事务锁理解错啦 默认不是共享锁吗?? 那该如何解决呢(线程锁是一个办法,我知道,我只想知道事务锁可以达到线程锁的效果吗)

C# code
SqlConnection connection = new SqlConnection(SqlHelper.ConnectionString);
connection.Open();
//开启事务
SqlTransaction transaction = connection.BeginTransaction();

//查询
select()
//更新
update()

transaction.Commit();


------解决方案--------------------
//查询
select()
//更新
update()

你的查询和更新方法不在同一个事务中
------解决方案--------------------
隔离级别设置为可串行化
serializable
------解决方案--------------------
估计用Serializable无法实现楼主的需求,

因为没有SQL无法帮你分析,只能告诉你要实现这目的可以用applock,