如何从SQL连接字符串设置查询超时

时间:2009-07-29 09:07:48

标签: sql-server

我想从连接字符串设置querytimeout。 不是连接超时,是否可能?

6 个答案:

答案 0 :(得分:33)

没有。它是每个命令,而不是每个连接。

编辑,2013年5月

根据评论要求:

关于commands and execution time outs in SQL Server (DBA.SE)的更多说明。 还有更多的东西:What happens to an uncommitted transaction when the connection is closed?

答案 1 :(得分:6)

请参阅: - ConnectionStrings有关此主题的内容。没有默认命令超时属性。

答案 2 :(得分:4)

您只能在连接字符串上设置连接超时,查询的超时通常在命令超时。 (假设我们在这里谈论.net,我无法从你的问题中说出来。)

但是,对上下文连接执行命令时,命令超时无效(在连接字符串中使用“context connection = true”打开SqlConnection)。

答案 3 :(得分:1)

仅限代码:

namespace xxx.DsXxxTableAdapters {
    partial class ZzzTableAdapter
    {
        public void SetTimeout(int timeout)
        {
            if (this.Adapter.DeleteCommand != null) { this.Adapter.DeleteCommand.CommandTimeout = timeout; }
            if (this.Adapter.InsertCommand != null) { this.Adapter.InsertCommand.CommandTimeout = timeout; }
            if (this.Adapter.UpdateCommand != null) { this.Adapter.UpdateCommand.CommandTimeout = timeout; }
            if (this._commandCollection == null) { this.InitCommandCollection(); }
            if (this._commandCollection != null)
            {
                foreach (System.Data.SqlClient.SqlCommand item in this._commandCollection)
                {
                    if (item != null)
                    { item.CommandTimeout = timeout; }
                }
            }
        }
    }
 
    //....
 
 }

答案 4 :(得分:0)

您可以在连接字符串中设置超时(在客户端和sql之间建立连接的时间)。每个命令都设置了commandTimeout,但默认时间为30秒

答案 5 :(得分:0)

我在 FollowCode 中找到答案:

 SqlDataAdapter da = new SqlDataAdapter(Query, ConnectionString);
 da.SelectCommand.CommandTimeout = queryTimeoutInSeconds;