随着数据库大小的增加,我有一个查询需要更长的时间来执行。查询已优化并且是必要的,但我的 C# 控制台应用程序最近给我这个错误:
Unhandled Exception: MySql.Data.MySqlClient.MySqlException: Timeout expired.
增加连接字符串中的连接超时没有帮助;我从
Connect Timeout=28800
到
Connect Timeout=128800
但尽管进行了此更改,我仍然收到错误。
如果我从 MySQL Workbench 运行查询,它只需要大约 10 秒,所以我不确定如何防止这个未处理的异常。
除了“查询所花费的时间”之外,还有其他因素会产生此异常吗?
最佳答案
我以前遇到过这个问题。 ConnectTimeout 属性仅适用于连接到数据库时发生的超时,不适用于查询。
CommandTimeout 指定等待查询返回的时间。我相信默认值是 30 秒。仔细检查 MySql 库的文档,但对于 SqlCommand,CommandTimeout 的单位是秒而不是毫秒。
关于c# - MySqlException : Timeout expired - Increasing Connection Timeout Has Had No Effect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11509817/