Как преобразовать нулевое значение переменной Nullable DateTime в DbNull.Value

У меня есть переменная DateTime. И я хочу написать это в БД SQL. Когда я пытаюсь вставить:

Если переменная имеет значение, проблем нет.

Но если оно не имеет значения, вставка прерывается с ошибкой.

Я хочу спросить: Как мы можем вставить обнуляемый DateTime в Sql через параметр DbCommand?

(PS: Столбец Sql также можно обнулять.)

DateTime? myDate = null;
DbCommand dbCommand = new DbCommand();
dbCommand.Parameters.Add("NullableSqlDateField", DbType.DateTime, myDate);

2 ответа

Решение

Попробуйте оператор слияния null:

dbCommand.Parameters.Add("NullableSqlDateField", DbType.DateTime, (object) myDate ?? DbNull.Value);

Попробуй это

if(myDate.HasValue)
  dbCommand.Parameters.Add("NullableSqlDateField", DbType.DateTime, myDate.Value);
else
  dbCommand.Parameters.Add("NullableSqlDateField", DbType.DateTime, DbNull.Value);
Другие вопросы по тегам