我想从连接字符串设置querytimeout。 不是连接超时,是否可能?
答案 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;