默认值为
CommandTimeout的值为30秒.您可以通过执行以下操作手动更改命令对象实例上的值
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)
但是,直接设置超时,似乎不是很大的工作