c#中写了一个方法,方法中对数据库中同一个表有两条操作语句1:根据id值更新数据2:根据同一个id查询数据,结果经常报死锁,希望高人指点一下啊,先谢过了

解决方案 »

  1.   

    方法中调用了两个方法:方法1对数据库的操作:update table1 set t1='123' where id=1
    方法2对数据库的操作:select * table1 where id=1
      

  2.   

    你是要先update还是先查询?这个要分顺序,不然你第一次读出来的数据和第二次读出来的数据是不一样的。
      

  3.   

    先执行方法1后执行方法2 所以是先update后select
      

  4.   

    先檢查是頁面鎖還是範圍鎖,如果每次只更新一行數據,可以考慮加rowlock,以免鎖升級導致死鎖的發生。
      

  5.   


    同意,应该不是这个问题,可能的问题是有其他操作跟你的顺序相反,先SELECT后UPDATE,这样两个操作可能会产生死锁。建议你还是找出死锁的原因然后寻求解决办法。