.NETSqlCommand.CommandTimeout
和之间有什么区别SqlConnection.ConnectionTimeout
?
Answers:
是。CommandTimeout
一个命令完成所需的时间。ConnectionTimeout
与服务器建立连接需要多长时间。
例如,您可能正在执行运行时间相对较长的查询-只需花10分钟即可完成查询,但这完全可以,但是如果花10分钟才能建立连接,那您就知道有些严重错误。
select @@LOCK_TIMEOUT //get the TIMEOUT,default is -1
set LOCK_TIMEOUT = 600//set TIMEOUT with ms
关于CommandTimeout的快速说明,因为它是Connection和Command对象的属性...
Connection对象上的CommandTimeout设置对同一Connection上Command对象上的CommandTimeout设置没有影响。也就是说,Command对象的CommandTimeout属性不会继承Connection对象的CommandTimeout值。
因此,Connection对象上的CommandTimeout设置仅影响仅在Connection对象下执行的命令(不使用Command对象)。
例如,当您连接到存储的Proc并将参数添加到命令对象,并使用连接对象的连接执行命令对象时,则需要在命令对象上设置CommandTimeout,在连接对象上设置ConnectionTimeout才能覆盖两者默认值。在连接对象上设置CommandTimeout不会覆盖命令对象命令的默认超时。
https://docs.microsoft.com/zh-CN/sql/ado/reference/ado-api/commandtimeout-property-ado?view=sql-server-ver15 https://docs.microsoft.com/zh-CN / sql / ado / reference / ado-api / connectiontimeout-property-ado?view = sql-server-ver15