首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySqlException:超时过期-增加连接超时没有影响

问MySqlException:超时过期-增加连接超时没有影响
EN

Stack Overflow用户
提问于 2012-07-16 17:55:00
回答 3查看 33.5K关注 0票数 11

随着数据库大小的增加,我有一个需要更长时间执行的查询。查询是优化的和必要的,但是我的C#控制台应用程序最近给了我这个错误:

代码语言:javascript
复制
Unhandled Exception: MySql.Data.MySqlClient.MySqlException: Timeout expired.

增加连接字符串中的连接时间没有帮助;我从

连接Timeout=28800

至

连接Timeout=128800

不过,尽管有这种变化,我还是会犯错误。

如果我从MySQL工作台运行查询,只需10秒左右,所以我不知道如何防止这个未处理的异常。

除了“查询所需的时间”之外,还有其他东西可以产生此异常吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-16 19:39:45

我以前也有过这个问题。ConnectTimeout属性仅适用于连接到数据库时发生的超时,而不适用于查询。

但是,CommandTimeout指定了应该等待查询返回的时间。我相信默认是30秒。重复检查MySql库的文档,但是对于SqlCommand,CommandTimeout以秒而不是毫秒为单位。

票数 23
EN

Stack Overflow用户

发布于 2014-09-02 23:11:44

您还可以尝试在连接字符串中添加“默认命令timeout=360”;例如

代码语言:javascript
复制
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;default command timeout=20;

此选项可从Connector/NetVersion5.1.4中获得。

[我从connectionstrings.com s.com/mysql/上拿了这个

票数 4
EN

Stack Overflow用户

发布于 2012-07-16 18:13:31

如果你能向我们展示你的方法,我们可以帮助我们找到错误。

如果说历史(和历史)教会了我什么,那就是

代码语言:javascript
复制
"You better be using Paramaterized SQL statements before posting any code" 

如果您不确定如何使用参数化命令,请举一个例子(取自我没有使用参数化SQL的答案之一)。

代码语言:javascript
复制
var command = new MySqlCommand(
    "SELECT * FROM tblPerson WHERE LastName = @Name AND Height > @Height AND BirthDate < @BirthDate", connection);

command.Parameters.AddWithValue("@Name", lastname);
command.Parameters.AddWithValue("@Height", height);
command.Parameters.AddWithValue("@Name", birthDate);

如果您还没有这样做,请尝试,并发布一些代码:)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11509817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档