我在查询分析器中执行update语句,受影响的行数为1和0
但是ExecuteNonQuery() 返回值分别为2和1,为什么?
急!

解决方案 »

  1.   

    我是说,执行两条update语句的时候。
      

  2.   

    int updateNum = -1;
    updateNum = data.ExecuteNonQuery("Update T_User set UserName = 'aaaa',Sex = '男' where UserID = '1'");sql语句:
    Update T_User set UserName = 'aaaa',Sex = '男' where UserID = '1'
    在查询分析器中执行,结果
    (所影响的行数为 0 行)但是程序运行,updateNum = 1
      

  3.   

    UserID你用的是字符型?你得确定是吗?还有你用的数据库是对应的吗?再者你可以改变其他的测试用例看看情况。比如where 的条件该为其他。还有你不是在程序中运行了以后。然后再在查询分析器里来看情况吧。那肯定会说影响行数为0了。
      

  4.   

    估计你哪里sql语句有不同了。TO: nf21st(宁飞)
    “还有你不是在程序中运行了以后。然后再在查询分析器里来看情况吧。那肯定会说影响行数为0了。”——Error
      

  5.   

    哈哈,多谢各位的好心帮助了,原因已经找到了,各位说的我都注意到了!
    但是真正的原因,是我以前没遇到过的,有关触发器的问题:
    我写了个 T_User 表的 update 触发器,该触发器将会向另一张表插入记录,
    所以,在update T_User 表时,即使T_User表中更新的记录数为0,
    触发器任将向另一张表插入一条记录,最终使得影响行数 updateNum 的值是我期望的值0 + 1;问题解决了,也希望各位借鉴,不要再犯这种错误!!