.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的吗?