有这样一个事务处理程序:1.Trans = sqlConncetion.BeginTransaction(IsolationLevel.RepeatableRead);2.scommand = new SqlCommand("select * from table where ID=" + ID, con); ........3.Trans.Commit();这三行在一个方法里的时候,俩个事务并发,第一个事务可以锁住记录不让后来的事务读数据
直到提交但是把第三行放到另一个方法里去,第一个事务就锁不住记录了。这是为什么?
直到提交但是把第三行放到另一个方法里去,第一个事务就锁不住记录了。这是为什么?
不然会导致线程不安全,造成事务提交混乱!
因为2和3之间的那些行中有修改命令
比如:update table set xxx where id=ID
如果修改命令和scommand = new SqlCommand("select * from table where ID=" + ID, con);
在一个方法之内能锁住行
不在一个方法之内则锁不住。