19

私はdatetimeデータ型を持っています:dttm

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

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

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

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

4

3 に答える 3

41

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

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

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

于 2013-05-23T14:55:56.613 に答える
21

使用するDBNull.Value

if (dttm.HasValue)
{
    cmd.Parameters.AddWithValue("@dtb", dttm);
}
else
{
    cmd.Parameters.AddWithValue("@dtb", DBNull.Value)
}
于 2013-05-23T14:54:29.760 に答える