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

Dja*_*ous 15 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", _____)
}
Run Code Online (Sandbox Code Playgroud)

如何才能做到这一点.

Kev*_*man 36

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

cmd.Parameters.AddWithValue("@dtb", dttm ?? (object) DBNull.Value);
Run Code Online (Sandbox Code Playgroud)

这将消除对if语句的需要


Car*_*ras 19

使用 DBNull.Value

if (dttm.HasValue)
{
    cmd.Parameters.AddWithValue("@dtb", dttm);
}
else
{
    cmd.Parameters.AddWithValue("@dtb", DBNull.Value)
}
Run Code Online (Sandbox Code Playgroud)