Как преобразовать нулевое значение переменной 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);