【发布时间】:2014-02-07 08:27:40
【问题描述】:
需要以下检查来检查空值。有什么办法可以直接做吗?
if(node.ID==0)
{
cmd.Parameters["@ID"].Value = DBNull.Value;
}
else
{
cmd.Parameters["@ID"].Value = node.ID;
}
有没有办法我们可以进行这种检查,以及我们可以避免对每个值进行这种重复检查的设计? (顺便说一句,在我的情况下,0 被解释为 NULL 只是一个逻辑,但我对字符串等可空对象也有同样的要求)
【问题讨论】:
-
你可以使用三元运算符(?
-
请注意,对于可空类型(引用或可空值类型),这将是一个完全不同的答案。您是否有任何理由没有将您的
ID属性设置为Nullable<int>或其他? -
如果您不小心将您并不真正想要的内容写入数据库,该怎么办?您可能会意识到需要事先检查。当异常触发时,有时这并不是一件坏事。
-
@JonSkeet 我不确定 Nullable
是否可以安全使用(不熟悉),以防其他人稍后使用它,但我会尝试一下。
标签: c# database sqlcommand dbnull