请问DBNull.Value和null的区别

zhu4139365 2009-04-14 04:32:59
就知道转换row[column] 的值类型之前要判断是否为DBNull.Value。
其他的就不知道什么时候用到DBNull.Value了。
请问DBNull.Value属于什么类型?存储的是什么值,还有其他用途没,和NULL的区别是什么?
...全文
291 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
冷月孤峰 2009-04-14
  • 打赏
  • 举报
回复
Null是.net中无效的对象引用。
DBNull是一个类。DBNull.Value是它唯一的实例。它指数据库中数据为空(<NULL>)时,在.net中的值。

一般在向数据库插入空值的时候用到DBNull.Value。
Myth_NiuNiu 2009-04-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cja03 的回复:]
MSDN说明:

DBNull 是一个单独的类,这意味着该类只能存在此实例。
如果数据库字段的数据缺失,则您可以使用 DBNull.Value 属性将 DBNull 对象值显式分配给该字段。


和null不一样。DBNull表求数据库字段的空值 <NULL>,它也是一个值:DBNull.Value.ToString();返回空字符串
而null表示空引用,string a=null; a.ToString();将无法编译。
[/Quote]
呵呵
zhu4139365 2009-04-14
  • 打赏
  • 举报
回复
那DBNull.Value还在什么地方能够用到?
再问个不相关的问题 对象=NULL 和对象.Dispose()都是释放内存吗?这两个有什么区别?
蓝海D鱼 2009-04-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhu4139365 的帖子:]
就知道转换row[column] 的值类型之前要判断是否为DBNull.Value。
其他的就不知道什么时候用到DBNull.Value了。
请问DBNull.Value属于什么类型?存储的是什么值,还有其他用途没,和NULL的区别是什么?
[/Quote]

正解
lgqiu2008 2009-04-14
  • 打赏
  • 举报
回复
mark
txt_paul 2009-04-14
  • 打赏
  • 举报
回复
也就是说,含意和用法上不同。
DBNull.Value 多用向 SqlParameter 的参数对象设置值的时候,给一个空值:
SqlParameter par = new SqlParameter("@Remark",SqlDbType.Varchar,30);
par.Value = DBNull.Value;
...
cja03 2009-04-14
  • 打赏
  • 举报
回复
MSDN说明:

DBNull 是一个单独的类,这意味着该类只能存在此实例。
如果数据库字段的数据缺失,则您可以使用 DBNull.Value 属性将 DBNull 对象值显式分配给该字段。


和null不一样。DBNull表求数据库字段的空值<NULL>,它也是一个值:DBNull.Value.ToString();返回空字符串
而null表示空引用,string a=null; a.ToString();将无法编译。
zzxap 2009-04-14
  • 打赏
  • 举报
回复
DBNull.Value 用于dataset之类的保存在内存的
rczjp 2009-04-14
  • 打赏
  • 举报
回复
数据库表里的字段有NULL就是DBNULL 其余的判断就是NULL
zgke 2009-04-14
  • 打赏
  • 举报
回复
DBNull.Value 相当与数据库的null;代表数据库里为null

null 是你程序的空引用.
qldsrx 2009-04-14
  • 打赏
  • 举报
回复
row[column]的值为DBNull.Value的话,至少说明它是从数据库中取到值了,对应了数据库中的空值;但如果row[column]的值为null的话,说明没有从数据库中取到值。
DBNull.Value是一个有着内存地址的具体类型的值,映射了数据库中的null值;而NULL则是空指向,不存在对应的内存地址。任何对象赋值为null后,内存就释放了。
ralpha08 2009-04-14
  • 打赏
  • 举报
回复
DBNull.Value应该是占用内存空间的
null指向空地址
guohouchang 2009-04-14
  • 打赏
  • 举报
回复
mark
txt_paul 2009-04-14
  • 打赏
  • 举报
回复
不一样啊。
DBNull.Value,, 是适用于向数据库的表中插入空值。

而 null,是指在程序中表示空引用。 或者对象为空。就是没有实例化。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧