当前位置: 首页 > 编程语言 > C#

MySQLexception–读取数据时遇到致命错误分享

时间:2023-04-10 21:55:28 C#

MySQLException–读取数据时遇到致命错误分析器运行它们,然后更新每条记录。它使用MySQLConnector/NET5.2.7。它的工作方式是我使用SQL_BUFFER_RESULT一次抓取数据块(即20,000行)以避免锁定。每条记录都通过grouper运行,然后对该记录进行单独的更新查询。使用了两个连接,一个读取连接和一个写入连接。因此,当程序执行并循环读取查询中的记录时,它会使用result.Read()执行此操作,其中result是一个MySqlDataReader。result.Read调用是抛出异常的地方。它随机发生(不在同一条记录或任何东西上)。一旦在第一条记录上遇到它,它也会在随后对数据读取器的每次读取调用中遇到。我尝试了很多事情并搜索了其他人遇到的相关问题。任何见解都会很棒,请随时让我知道我需要提供的任何其他信息。connection.Open();之间和command.ExecuteNonQuery();我只是添加了这样的两行:connection.Open();MySqlCommandcmd=newMySqlCommand("setnet_write_timeout=99999;setnet_read_timeout=99999",connection);//在mysqlServer上设置超时cmd.ExecuteNonQuery();intnumOfRecordsUpdated=command.ExecuteNonQuery();错误修正:)我在.NET连接器上遇到了类似的问题。该错误可能与速度相关-C#可能试图以比MySQL跟上的速度更快地处理数据。我最终做了两件事来补救-1.在错误发生时(或在处理大部分错误之后)添加一个睡眠计时器,以便系统可以“呼吸”或2.尝试再次阅读。我相信在读取大型数据集时.NET连接器存在缓冲区大小限制。我通过一次读取5000条记录解决了这个问题。或者干脆:以上就是C#学习教程《MySQLexception-读取数据时遇到的致命错误》的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——cmd。命令超时=99999;本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: