web-dev-qa-db-ja.com

パラメータ化されたクエリを介してデータベースにnull値を挿入する方法

datetimeデータ型があります:dttm

また、データベースフィールドタイプはdatatimeです。

今私はこれをやっています:

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

これはどのように行うことができますか。

18

使用する DBNull.Value

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

これは、null合体演算子を使用して実行できます。dttmの値がnullの場合、DBNull.Valueが挿入されます。それ以外の場合は、dttmの値が使用されます。

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

これにより、ifステートメントが不要になります

36
Kevin Kunderman

フィールドでnull値が許可されている場合。

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