Ответ 1
Используйте DBNull.Value
if (dttm.HasValue)
{
cmd.Parameters.AddWithValue("@dtb", dttm);
}
else
{
cmd.Parameters.AddWithValue("@dtb", DBNull.Value)
}
У меня есть тип данных datetime
: dttm
Также тип поля базы данных datatime
Теперь я делаю это:
if (dttm.HasValue)
{
cmd.Parameters.AddWithValue("@dtb", dttm);
}
else
{
// It should insert null value into database
// through cmd.Parameters.AddWithValue("@dtb", _____)
}
Как это можно сделать.
Используйте DBNull.Value
if (dttm.HasValue)
{
cmd.Parameters.AddWithValue("@dtb", dttm);
}
else
{
cmd.Parameters.AddWithValue("@dtb", DBNull.Value)
}
Это можно сделать с помощью оператора с нулевым коалесцированием: если значение dttm равно null, DBNull.Value будет вставлен, иначе будет использоваться значение dttm
cmd.Parameters.AddWithValue("@dtb", dttm ?? (object) DBNull.Value);
Это устранит необходимость в статусе if
если ваше поле разрешает нулевое значение;
if (dttm.HasValue)
{
cmd.Parameters.AddWithValue("@dtb", dttm);
}
else
{
cmd.Parameters.AddWithValue("@dtb", DBNull.Value)
}