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-coalescing 运算符来完成:如果 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 回答
3

如果您的字段允许空值;

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