发布
社区首页 >问答首页 >从VB.net超时错误调用存储过程

从VB.net超时错误调用存储过程
EN

Stack Overflow用户
提问于 2010-04-23 23:12:42
回答 5查看 13.7K关注 0票数 4

当从vb.net调用存储过程时,如果在连接字符串中没有指定超时,那么是否存在默认的SQL超时时间?我不确定是否在连接字符串中指定了CommandTimeout,但我正在检查所有可能的情况。

如果在30秒(或更长)抛出后没有结果:

代码语言:javascript
代码运行次数:0
复制
`System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.`

SQL事件探查器指出,当程序超时时,脚本将在30秒内运行并结束。

该脚本在SQL server中自行运行,大约在1分45秒内运行无误。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-04-23 23:17:46

执行SQL的超时值并不存储在连接字符串中,而是作为SqlCommand.CommandTimeout存储在SqlCommand中。

默认值为30秒。

票数 5
EN

Stack Overflow用户

发布于 2010-04-23 23:17:23

代码语言:javascript
代码运行次数:0
复制
SqlCommand cmd;
.....
cmd.CommandTimeout = 120;

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.commandtimeout.aspx

票数 1
EN

Stack Overflow用户

发布于 2010-04-23 23:21:53

SqlClient对象可能会引发两种类型的超时异常: SqlConnection和SqlCommand。

当app尝试建立连接但在给定时间内未成功时,会引发SqlConnection超时异常。我相信这是500秒。

SQLCommand 超时决定向使用SQLCommand的应用程序发出命令以等待SQL Server完成操作的时间。这个是30秒。

设置SQLCommand时,将CommandTimeout更改为更高

例如:

代码语言:javascript
代码运行次数:0
复制
cmd.CommandTimeout = 300
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2699676

复制
相关文章

相似问题

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