none
在C#中使用ExecuteNonQuery进行update操作时,若更新前与更新后所有字段值没有改变,则返回值为0 RRS feed

  • 问题

  • 如题。我使用的是oracle,但好像sql也有同样的问题。

    但在plsql里,可以正确返回1.不知道为什么纯代码时为 0 ?

    谁能给解释下

    2014年10月29日 6:44

答案

全部回复

  • 你好:

    据我所知对于SqlServer不会发生这样的现象,只要数据库正确执行了SQL语句,即使更新后的数据和更新前的数据没有发生改变,仍然会正常返回受影响的行数,Oracle我没有试过,但也应该是同样的结果。应该是你的代码写的有问题(比如执行了两次ExecuteNonQuery,第二次会返回0),或者执行update语句时where条件并没有查询到记录,更新的影响行数为0。如果你不确定的话请贴出你的代码,SQL语句,以及数据库里面存储的数据。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    2014年10月30日 1:48
    版主
  • 问题找到了。是我在更新之前在某个地方执行了删除操作。
    • 已标记为答案 jinli.zh 2014年10月31日 0:48
    2014年10月31日 0:48