当从vb.net调用存储过程时,如果在连接字符串中没有指定超时,那么是否存在默认的SQL超时时间?我不确定是否在连接字符串中指定了CommandTimeout
,但我正在检查所有可能的情况。
如果在30秒(或更长)抛出后没有结果:
`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秒内运行无误。
发布于 2010-04-23 23:17:46
执行SQL的超时值并不存储在连接字符串中,而是作为SqlCommand.CommandTimeout
存储在SqlCommand
中。
默认值为30秒。
发布于 2010-04-23 23:17:23
SqlCommand cmd;
.....
cmd.CommandTimeout = 120;
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.commandtimeout.aspx
发布于 2010-04-23 23:21:53
SqlClient对象可能会引发两种类型的超时异常: SqlConnection和SqlCommand。
当app尝试建立连接但在给定时间内未成功时,会引发SqlConnection超时异常。我相信这是500秒。
SQLCommand 超时决定向使用SQLCommand的应用程序发出命令以等待SQL Server完成操作的时间。这个是30秒。
设置SQLCommand时,将CommandTimeout更改为更高
例如:
cmd.CommandTimeout = 300
https://stackoverflow.com/questions/2699676
复制相似问题