13
默认CommandTimeout值为30秒。您可以手动通过执行以下为所有新命令对象设置自定义默认CommandTimeout
Dim cmd As New System.Data.SqlClient.SqlCommand
cmd.CommandTimeout = 60
改变的命令对象的实例值是否有指定不同的默认值的方式,使得所有新的命令对象会自动有你的解决方案时,在这个值他们被创建?
默认CommandTimeout值为30秒。您可以手动通过执行以下为所有新命令对象设置自定义默认CommandTimeout
Dim cmd As New System.Data.SqlClient.SqlCommand
cmd.CommandTimeout = 60
改变的命令对象的实例值是否有指定不同的默认值的方式,使得所有新的命令对象会自动有你的解决方案时,在这个值他们被创建?
据我所知,没有办法改变这个默认值。对于一个SqlCommand的构造码是这样的:
public SqlCommand()
{
this.ObjectID = Interlocked.Increment(ref _objectTypeCount);
this._commandTimeout = 30;
this._updatedRowSource = UpdateRowSource.Both;
this._prepareHandle = -1;
this._rowsAffected = -1;
this._notificationAutoEnlist = true;
GC.SuppressFinalize(this);
}
一种可能的解决方法是使用作为参数给带有一个SqlCommand作为参数传入构造的预定的SqlCommand。
所以,你可以创建一个全球性的SqlCommand(模板)
Dim commandTemplate60 = new SqlCommand()
commandTemplate60.Timeout = 60
,然后当你需要60秒
超时Dim cmd As New System.Data.SqlClient.SqlCommand(commandTemplate60)
然而,直接设置超时的命令,没有按't似乎很多工作
[相关问题](http://stackoverflow.com/q/1001713/1178314)(不标志为重复,这些问题有一些重大差异伊莫,即使答案对两者都是一样的。) –