加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

.net – 为所有新的Command对象设置自定义默认CommandTimeout

发布时间:2020-12-17 00:09:39 所属栏目:大数据 来源:网络整理
导读:默认值为 CommandTimeout的值为30秒.您可以通过执行以下操作手动更改命令对象实例上的值 Dim cmd As New System.Data.SqlClient.SqlCommandcmd.CommandTimeout = 60 有没有办法指定一个不同的默认值,这样所有新的命令对象在创建时都会自动在你的解决方案中有
默认值为 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)

但是,直接设置超时,似乎不是很大的工作

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读