Подтвердить что ты не робот

Как вставить нулевое значение в базу данных через параметризованный запрос

У меня есть тип данных datetime: dttm

Также тип поля базы данных datatime

Теперь я делаю это:

if (dttm.HasValue)
{
    cmd.Parameters.AddWithValue("@dtb", dttm);
}
else
{
    // It should insert null value into database
    // through cmd.Parameters.AddWithValue("@dtb", _____)
}

Как это можно сделать.

4b9b3361

Ответ 1

Используйте DBNull.Value

if (dttm.HasValue)
{
    cmd.Parameters.AddWithValue("@dtb", dttm);
}
else
{
    cmd.Parameters.AddWithValue("@dtb", DBNull.Value)
}

Ответ 2

Это можно сделать с помощью оператора с нулевым коалесцированием: если значение dttm равно null, DBNull.Value будет вставлен, иначе будет использоваться значение dttm

cmd.Parameters.AddWithValue("@dtb", dttm ?? (object) DBNull.Value);

Это устранит необходимость в статусе if

Ответ 3

если ваше поле разрешает нулевое значение;

if (dttm.HasValue)
{
    cmd.Parameters.AddWithValue("@dtb", dttm);
}
else
{
    cmd.Parameters.AddWithValue("@dtb", DBNull.Value)
}