C# + MySQL + ExecuteNonQuery 在更新时返回 '1' 但不在数据库中更改

标签 c# mysql

我有一个问题,即使经过数小时的调试,我显然也找不到解决方案。

我有一个简单的 SQL 命令,我想用某个值更新一行(该值是大约 ~5mb 的文本),执行 SQL 命令后,C# 代码端的“ExecuteNonQuery()”返回'1' 也不异常(exception),但更改有时会反射(reflect)在数据库行中,有时不会。

我尝试调试以查看将替换旧值的值是否正确并且它们是正确的。我正在使用 MySQL 5.5.11。

  • 可能是 MySQL 设置或其他什么?

我对这个问题失去了理智,如果您有任何想法,将不胜感激。

编辑,包括代码:

代码就这么简单:

cmd.CommandText = "UPDATE user SET data = @data WHERE id = @id";

然后我将参数添加到 SQL 查询的 DBCommand 对象。 “数据”大约 5mb 大。

此命令始终返回“1”,即使更改未反射(reflect)在数据库中(有时有效,有时无效):

cmd.ExecuteNonQuery();

提前致谢!

最佳答案

不知道mysql provider有没有使用autocommit?如果不是,那么您必须在连接对象上使用 BeginTransaction 获得的事务对象上调用提交。

关于C# + MySQL + ExecuteNonQuery 在更新时返回 '1' 但不在数据库中更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10971226/

相关文章:

c# - .NET MVC 3 如何循环模型状态错误并强制 ModelState.Valid 或禁用特定错误?

c# - EnterUpgradeableReadLock 和 EnterReadLock 有什么区别?

C# MySqlConnection 不会关闭

php - 连接到多个数据库

mysql - 优化 MySQL 表速度的方法

php - 从数据透视表创建 hasMany 或一对多关系 - Laravel

c# - 对 .net 框架解决方案中的子项目使用较新的目标框架 .net 标准

c# - 使用 Visual Studio 测试运行程序运行的 xUnit 测试的输出未显示在“输出”窗口中

Mysql 8自定义字符串函数总是返回零

mysql - MySQL 中何时使用单引号、双引号和反引号