Я пытаюсь обобщить (если это даже слово) следующую строку кода:
oCmd.CreateParameter("@Date", SqlDbType.DateTime, updateDate > DateTime.MinValue ? updateDate : SqlDateTime.Null);
Первым изменением, очевидно, является SqlDbType.DateTime, просто DbType.DateTime, что мне делать с SqlDateTime.Null?
Если я поменяю на:
oCmd.CreateParameter("@Date", DbType.DateTime, updateDate > DateTime.MinValue ? updateDate : null);
Я получаю симпатичный маленький красный волнистый знак того, что нет неявного преобразования между DateTime и null. Кажется, я не могу найти общий способ сделать это - возможно ли это?
Из-за несовместимости источника параметра updateDate и этой строки кода я не могу просто использовать updateDate:
oCmd.CreateParameter("@Date", DbType.DateTime, updateDate);
Довольно часто дата, которую мы получаем из вызывающего кода, выходит за допустимый диапазон дат SQL Server, и это приводит к сбою команды. Следовательно, должна быть сделана проверка - отсюда и причина включения троичной проверки.
Единственный способ, которым я могу это сделать, - это прорваться к нескольким линиям, но я надеюсь, что у кого-то есть хитрость в рукаве, поэтому я могу оставить это как одну линию.
Заранее спасибо