1

我们有一个 C# 应用程序一直在三台机器上运行,其中 2 台运行 Mono 和 1 台在过去 4 年中成功运行 Windows。

最近,我们在进行修复时发生了崩溃并更新了 Windows 机器。机器上的MySql是5.5.16

发布更新,应用程序现在在标题“未处理的异常:MySql.Data.MySqlClient.MySqlException:重复条目'CC2-2012-04-10-201205'键'PRIMARY'”中抛出错误

  • 没有一个字段是自动递增的
  • 我们正在使用 DbDataAdapter
  • sql 语句是一个 UPDATE
  • 所有服务器的所有索引、表结构、权限等似乎都是相同的
  • 表上没有触发器
  • 我们一遍又一遍地删除和修复表和索引,但无济于事
  • 我们尝试过 MyIASM 和 InnoDB(我们最初使用 InnoDB)

我不知道更新语句如何因重复键而失败,关于我发现的最近的解决方案是很多很多版本之前的 MySql 错误:http: //bugs.mysql.com/bug.php?id= 27650 但这显然是多年前修复的。

任何人有任何想法我可以在哪里看?

4

1 回答 1

0

这个问题原来是 MySQL 的 ADO.NET 驱动程序(连接器/NET)和 MySQL 服务器版本之间的版本不匹配。真的很明显。

我们使用的 ADO 驱动程序原来是一个相当旧的版本,同时肯定有一些重大变化。

只需升级 mysql.data.dll 即可解决所有问题

编辑:确认,我们使用的是非常旧的 MySql.Data ADO.NET 驱动程序版本 1.0.10.1 这适用于 MySql 服务器 5.1.53 及以下版本。(这是我们的代码仍然可以工作的最高服务器版本)

一旦我们升级到 MySql 服务器版本 5.5.24,应用程序都开始因 DataAdapter 失败,除了重复记录(没有重复记录)

于 2012-06-12T02:33:16.693 回答