【发布时间】:2011-10-27 15:00:00
【问题描述】:
在 SQL Server 数据库中修改数据时,您可以使用System.DBNull.Value 或null 来表示NULL 值。这两个都可以工作,并将正确的值设置为NULL。
我的问题是 - 哪些是首选,为什么?在某些情况下应该使用一个代替另一个?
【问题讨论】:
标签: sql-server null
在 SQL Server 数据库中修改数据时,您可以使用System.DBNull.Value 或null 来表示NULL 值。这两个都可以工作,并将正确的值设置为NULL。
我的问题是 - 哪些是首选,为什么?在某些情况下应该使用一个代替另一个?
【问题讨论】:
标签: sql-server null
来自System.DBNull.Value != null,并通过测试此代码:
var result = (System.DBNull.Value == null); // this is always false
我们可以看到 CLR 并没有以同样的方式对待它们。从数据库中检索数据时,我们需要检查 DBNull.Value 而不是 null 引用。
尽管我们使用INSERT 或UPDATE 数据并不重要,但我倾向于坚持使用DBNull.Value 以通过数据访问代码保持一致性。
问题C# Database Access: DBNull vs null还有各种其他意见
【讨论】:
DBNull。
DBNull 代表一个变体,不是特定于类型的。在一般情况下,我希望任何你有一个需要强类型数据集并且必须将 DBNull 转换为“typed-NULL”的构造的地方的性能都会受到影响。
【讨论】: