如何通过参数化查询在数据库中插入空值

时间:2013-05-23 14:51:40

标签: c# sql datetime insert parameterized-query

我有一个datetime数据类型:dttm

此外,数据库字段类型为datatime

现在我这样做:

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

如何做到这一点。

3 个答案:

答案 0 :(得分:33)

这可以使用null-coalescing运算符来完成:如果dttm的值为null,则将插入DBNull.Value,否则将使用dttm的值

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

这将消除对if语句

的需要

答案 1 :(得分:18)

使用DBNull.Value

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

答案 2 :(得分:3)

如果您的字段允许空值;

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