【发布时间】:2018-07-09 18:39:13
【问题描述】:
我有一个正在运行 UPDATE 查询的程序。出于测试目的,查询是固定的,只是UPDATE table SET field = 'field_name' WHERE other_field = 'id_field_value'。我正在使用MySqlCommand 并使用sqlCommand.ExecuteNonQuery() 执行查询。但是,我一遍又一遍地运行它,它每次都返回 1 行更改。正如预期的那样,在 MySQL GUI 工具中运行相同的查询会返回 0 行受影响。找出 sql db 发生了哪些变化的最佳方法是什么?
我的问题已被标记为重复 - 我不是在询问如何获取受 sql 查询影响的 # 行。我想知道当查询继续返回 1 行时,我希望它返回 0 时,如何找出对 sql 表进行了哪些更改。
没关系,我的问题在重复问题 (Get affected rows on ExecuteNonQuery) 的 cmets 中得到了回答。结果 ExecuteNonQuery() 不返回实际修改的行数,而只是返回可能已修改的行数。坦率地说,这没什么用处。
【问题讨论】:
-
问题 SELECT field FROM table WHERE other_field = 'id_field_value'
-
您可以更改更新中的过滤器以包含
AND field <> 'field_name',基本上确保您不会重置相同的值。 -
@juharr 这是一个很好的解决方法,谢谢。