我想开启个事务 就是想让下面的操作只能一个事务操作 意思就是如果有两个并发连接的话 要等第一个事务操作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,