在多个并发用户更新同一账户信息时,第一个可以成功更新。随后的更新在提交之前,显示错误信息“用户数据已经改变,是否需要刷新用户数据?  
应该怎么实现,最好能给出代码,或给我个例子  用C# sql Server

解决方案 »

  1.   


    1 如何锁一个表的某一行A 连接中执行SET TRANSACTION ISOLATION LEVEL REPEATABLE READbegin transelect * from tablename with (rowlock) where id=3waitfor delay '00:00:05'commit tranB连接中如果执行update tablename set colname='10' where id=3 --则要等待5秒update tablename set colname='10' where id<>3 --可立即执行2 锁定数据库的一个表SELECT * FROM table WITH (HOLDLOCK) 
    注意: 锁定数据库的一个表的区别SELECT * FROM table WITH (HOLDLOCK) 
    其他事务可以读取表,但不能更新删除SELECT * FROM table WITH (TABLOCKX) 
    其他事务不能读取表,更新和删除
      

  2.   

    可以给表加个rowversion字段,在读入记录时保存字段值,在保存时再读入改字段值比较。