Пулы потоков имеют смысл каждый раз, когда у Вас есть понятие рабочих потоков. Любое время можно легко разделить обработку в меньшие задания, каждое из которых может быть обработано независимо, рабочие потоки (и поэтому пул потоков) имеет смысл.
Пулы потоков не имеют смысла, когда Вы должны распараллелить, которые выполняют совершенно отличающиеся и несвязанные действия, которые нельзя считать "заданиями"; например, Один поток для обработки событий GUI, другой для обработки бэкенда. Пулы потоков также не имеют смысла при обработке форм конвейер.
В основном, если у Вас есть потоки, которые запускаются, обработайте задание и выйдите, пул потоков является, вероятно, способом пойти. Иначе пул потоков действительно не собирается помогать.
SqlParameters[1] = new SqlParameter("Date1", SqlDbType.SqlDateTime);
SqlParameters[1].Value = DBNull.Value;
SqlParameters[1].Direction = ParameterDirection.Input;
... затем скопируйте для второй.
Используйте DBNull.Value
Еще лучше, сделайте ваши параметры хранимой процедуры по умолчанию равными NULL. Или используйте параметр Nullable
, если параметр иногда будет допустимым объектом DateTime
Вы можете передать DBNull.Value
в свойство параметра .Value:
SqlParameters[0] = new SqlParameter("LedgerID", SqlDbType.BigInt );
SqlParameters[0].Value = DBNull.Value;
Просто отрегулируйте два ваших параметра DateTime, очевидно - просто демонстрируя, как использовать здесь значение свойства DBNull.Value
.
Marc
SQLParam = cmd.Parameters.Add("@RetailerID", SqlDbType.Int, 4)
If p_RetailerID.Length = 0 Or p_RetailerID = "0" Then
SQLParam.Value = DBNull.Value
Else
SQLParam.Value = p_RetailerID
End If