用一个事务,中间执行一个delete操作删除所有纪录和一个insert操作插入一些新的纪录,一般情况下执行结果都对;但是有时出现一个奇怪的现象,更新的结果中纪录总是重复的一条或者几条,很多,但是都重复。不知道可能是什么情况呢???
另外,更新的过程中可能有其他的程序在读取该表。

解决方案 »

  1.   

    可能你在delete的时候别人正在读取,所以没有delete成功,然后又insert进去就重复了
      

  2.   

    try
    {
    cmd.executeNonQuery()
    }
    catch(Exception e)
    {
    trans.rollback();
    }
    没有catch到exception,应该是执行成功了吧
      

  3.   

    你的表结构是不是建的不好,或者主键设计的有问题。另外可以在SQL语句层面(使用存储过程)和ado.net层面使用SqlTransation来处理事物。
      

  4.   

    try 

    cmd.executeNonQuery() ;
    trans.commite(); //加上这一句吧

    catch(Exception e) 

    trans.rollback(); 

    代码就这样嘛,可能还差点东西 吧,//trans.commite();