修改SQL Server数据库中的数据时,可以使用System.DBNull.Value
或null
来表示NULL
值。这两个都可以工作,并将正确的值设置为NULL
。
我的问题是 - 哪些是首选,为什么?是否有某些情况应该用来代替另一个?
答案 0 :(得分:2)
来自System.DBNull.Value != null,并测试此代码:
var result = (System.DBNull.Value == null); // this is always false
我们可以看到CLR不会以同样的方式对待它们。从数据库中检索数据时,我们需要检查DBNull.Value
而不是null
引用。
虽然我们使用INSERT
或UPDATE
数据无关紧要,但我倾向于坚持DBNull.Value
以确保数据访问代码的一致性。
答案 1 :(得分:0)
DBNull是变体的代表,不是特定于类型的。在一般情况下,我希望在你有一个需要强类型数据集的构造并且必须将DBNull转换为“typed-NULL”的任何地方都会遇到性能损失。