使用DBNull INSERT / UPDATE数据还是null?

时间:2011-10-27 15:00:00

标签: sql-server null

修改SQL Server数据库中的数据时,可以使用System.DBNull.Valuenull来表示NULL值。这两个都可以工作,并将正确的值设置为NULL

我的问题是 - 哪些是首选,为什么?是否有某些情况应该用来代替另一个?

2 个答案:

答案 0 :(得分:2)

来自System.DBNull.Value != null,并测试此代码:

var result = (System.DBNull.Value == null); // this is always false

我们可以看到CLR不会以同样的方式对待它们。从数据库中检索数据时,我们需要检查DBNull.Value而不是null引用。

虽然我们使用INSERTUPDATE数据无关紧要,但我倾向于坚持DBNull.Value以确保数据访问代码的一致性。

问题C# Database Access: DBNull vs null

中有各种其他意见

答案 1 :(得分:0)

DBNull是变体的代表,不是特定于类型的。在一般情况下,我希望在你有一个需要强类型数据集的构造并且必须将DBNull转换为“typed-NULL”的任何地方都会遇到性能损失。