2013-08-06 91 views
13

默认CommandTimeout值为30秒。您可以手动通过执行以下为所有新命令对象设置自定义默认CommandTimeout

Dim cmd As New System.Data.SqlClient.SqlCommand 
cmd.CommandTimeout = 60 

改变的命令对象的实例值是否有指定不同的默认值的方式,使得所有新的命令对象会自动有你的解决方案时,在这个值他们被创建?

+0

[相关问题](http://stackoverflow.com/q/1001713/1178314)(不标志为重复,这些问题有一些重大差异伊莫,即使答案对两者都是一样的。) –

回答

10

据我所知,没有办法改变这个默认值。对于一个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似乎很多工作

相关问题