Вероятная причина использования -1 в том, что автор хотел команду без тайм-аута.Однако код должен быть изменен для установки времени ожидания равным нулю, что означает «нет времени ожидания» в соответствии с документацией :
Значение 0 указывает на отсутствие ограничения (попыткавыполнение команды будет ждать бесконечно).
В зависимости от реализации, установка отрицательного значения для CommandTimeout
может вызвать исключение.Вот пример из Справочный источник Microsoft 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;
}
}
}