SqlCommand.CommandTimeout和SqlConnection.ConnectionTimeout有什么区别?

.NET中的SqlCommand.CommandTimeoutSqlConnection.ConnectionTimeout是否有区别?

是。 CommandTimeout是单个命令可以完成的时间。 ConnectionTimeout是build立到服务器的连接所需的时间。

例如,你可能正在执行相对长时间运行的查询 – 完成它们需要10分钟才能完成,但是如果花了10分钟时间才能build立连接,那么你就知道有什么是错的。

SqlCommand.CommandTimeout =您的SQL查询的超时限制。 意思是说,一个(如:SELECT,UPDATE)查询可以执行多less时间。 如果超过SqlCommand.CommandTimeout,则停止执行。 命令超时错误将会发生。

SqlConnection.ConnectionTimeout =连接的超时限制。 意思是说,连接对象可以尝试连接多less时间。 如果超过指定时间,则停止连接。 连接超时错误将会发生。

ConnectionTimeout指定尝试打开 SqlConnection时在超时之前要等待的时间。 它与Connection.Open()命令相关。

SqlCommand.CommandTimeout指定了SqlCommand在超时之前等待的持续时间。 这发生在打开一个连接后,在Command对象上调用了一个ExecuteXXX方法。

附加信息

CommandTimeout默认值是30秒。 零(0)表示没有限制。 您只能在编码中设置CommandTimeout值。

ConnectiontTimeout默认值是15秒。 零(0)也表示没有限制。 小于零值(减值)将得到ArgumentException 。 您可以在编码和configuration文件中设置ConnectionTimeout值。

 select @@LOCK_TIMEOUT //get the TIMEOUT,default is -1 set LOCK_TIMEOUT = 600//set TIMEOUT with ms