最近我在某些项目中看到了此值设置,我想知道它的确切含义,默认值或允许的最大值?
答案 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会完成这项工作。