如何找出SQL db的最后更改?

时间:2018-01-30 19:11:00

标签: c# mysql

我有一个运行UPDATE查询的程序。出于测试目的,查询是固定的,只是UPDATE table SET field = 'field_name' WHERE other_field = 'id_field_value'。我使用MySqlCommand并使用sqlCommand.ExecuteNonQuery()执行查询。但是,我一遍又一遍地运行它,每次都会继续返回1行。在MySQL GUI工具中运行相同的查询会按预期返回受影响的0行。找出sql db发生了哪些变化的最佳方法是什么?

我的问题已被标记为重复 - 我不是在问如何获取受SQL查询影响的#行。我问如何查询当一个查询继续返回受影响的行时,我希望它返回0时对sql表做了哪些更改。

NEVERMIND,我的问题在重复问题(Get affected rows on ExecuteNonQuery)的评论中得到了回答。事实证明,ExecuteNonQuery()不会返回实际修改过的行数,只有“可能的”和“可能的”行。可以修改的行数。坦率地说,这没那么有用。

1 个答案:

答案 0 :(得分:0)

默认情况下,Connector / NET中的MySqlCommand.ExecuteNonQuery返回找到的行数,无论它们是否已更新(即使the documentation for DbCommand说“对于UPDATE,INSERT和DELETE语句,返回值是受命令“)影响的行数。

要获得所需的行为,请在连接字符串(reference)中指定UseAffectedRows=True,或设置MySqlConnectionStringBuilder.UseAffectedRows = true;