SqlCommand.CommandTimeout和SqlConnection.ConnectionTimeout有什么区别?
.NET中的SqlCommand.CommandTimeout
和SqlConnection.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