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

.net SqlCommand.CommandTimeout和SqlConnection.ConnectionTimeout之间有什么区别?,.net,sqlconnection,sqlcommand,.net,Sqlconnection,Sqlcommand,SqlCommand.CommandTimeout和.NET中的SqlConnection.ConnectionTimeout之间有什么区别吗?是。是单个命令完成所需的时间。开始时与服务器建立连接所需的时间 例如,您可能正在执行运行时间相对较长的查询—完成查询需要10分钟,这是完全可以的,但是如果开始连接需要10分钟,您就会知道出现了严重错误。SqlCommand.CommandTimeout=SQL查询的超时限制。表示(例如:SELECT,UPDATE)查询执行所需的时间。如果超过SqlCom

SqlCommand.CommandTimeout
和.NET中的
SqlConnection.ConnectionTimeout
之间有什么区别吗?

是。是单个命令完成所需的时间。开始时与服务器建立连接所需的时间


例如,您可能正在执行运行时间相对较长的查询—完成查询需要10分钟,这是完全可以的,但是如果开始连接需要10分钟,您就会知道出现了严重错误。

SqlCommand.CommandTimeout
=SQL查询的超时限制。表示(例如:
SELECT
UPDATE
)查询执行所需的时间。如果超过
SqlCommand.CommandTimeout
,则停止执行。将发生命令超时错误


SqlConnection.ConnectionTimeout
=连接的超时限制。表示连接对象可以尝试连接的时间。如果超过指定的时间,它将停止连接。将发生连接超时错误。

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

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

其他信息

select @@LOCK_TIMEOUT //get the TIMEOUT,default is -1
set LOCK_TIMEOUT = 600//set TIMEOUT with ms
CommandTimeout
的默认值为30秒。零(0)表示没有限制。只能在编码中设置
CommandTimeout


connectionTimeout
的默认值为15秒。零(0)也表示没有限制。小于零值(负值)将获得
ArgumentException
。您可以在编码和配置文件中设置
ConnectionTimeout
值。

有关CommandTimeout的快速说明,因为它是连接和命令对象的属性

连接对象上的CommandTimeout设置对同一连接上的Command对象上的CommandTimeout设置没有影响;也就是说,命令对象的CommandTimeout属性不会继承连接对象的CommandTimeout值

因此,连接对象上的CommandTimeout设置仅影响在连接对象下执行的命令(不使用命令对象)

e、 g.当您连接到存储的进程并向command对象添加参数,并使用Connection对象的连接执行command对象时,您需要在command对象上设置CommandTimeout,在Connection对象上设置ConnectionTimeout以覆盖这两个默认值。在连接对象上设置CommandTimeout不会覆盖命令对象命令的默认超时


为了便于讨论,假设我有一个**&#问??运行时间为32秒的查询。如果我设置SqlCommand.CommandTimeout=40,但将SqlConnection.ConnectionTimeout保留为默认值(大概是30),连接会超时吗?换句话说,我必须同时设置这两个属性吗?听起来你是在说“不”,但我一定忘记了SqlConnection.ConnectionTimeout属性,开始质疑设置CommandTimeout是否能满足我的所有要求。FlipQuestion-CommandTimeout会影响查询,而ConnectionTimeout不会。ConnectionTimeout不是连接到peform查询的超时-它只是连接到数据库的超时。@jonsket do CommandTimeout和ConnectionTimeout,两者都生成相同的公共异常?或者不同的例外情况?@Yasser:恐怕我不知道。请记住,CommandTimeout似乎只适用于SQL Server将第一行返回到客户端代码之前的情况。例如,如果有一个查询在30秒内返回第一行,但完整的行集需要数小时才能返回,则将超时设置为30秒不会使查询超时,查询将运行数小时。如果在执行计划的LHS上没有阻塞运算符(如Order by),则主要是这种情况。(因为我花了2天的时间调试这个主题,没有其他关于这个主题的参考资料,所以发布)这是第三种类型的超时。主题所有者询问的两个问题中没有一个。而且没有回答这个问题。我不会-1它,因为我不知道编辑之前的问题是什么。这是针对MS SQL Server的吗?