SQLcommandTimeout = -1是什么意思?

时间:2018-09-26 15:16:43

标签: c# sql timeout

最近我在某些项目中看到了此值设置,我想知道它的确切含义,默认值或允许的最大值?

3 个答案:

答案 0 :(得分:3)

如果超时设置为小于1的值,它将超时设置为无穷大:它将一直等待,直到命令已执行或失败。

答案 1 :(得分:1)

使用-1的可能原因是作者想要一个没有超时的命令。但是,应更改代码以将超时设置为零,这根据documentation表示“无超时”:

  

值为0表示没有限制(尝试执行命令将无限期等待)。

根据实现的不同,为CommandTimeout设置负值可能会引发异常。这是来自Microsoft Reference Source cod e的示例:

override public int CommandTimeout { // V1.2.3300, XXXCommand V1.0.5000
    get {
        return _commandTimeout;
    }
    set {
        Bid.Trace("<sc.SqlCommand.set_CommandTimeout|API> %d#, %d\n", ObjectID, value);
        if (value < 0) {
            throw ADP.InvalidCommandTimeout(value);
        }
        if (value != _commandTimeout) {
            PropertyChanging();
            _commandTimeout = value;
        }
    }
}

答案 2 :(得分:0)

我猜不要超时或无穷大,尽管这样做的推荐方法是将值设置为0,如下所示SqlCommand.CommandTimeout

可能不知道将值设置为0会完成这项工作。