就知道转换row[column] 的值类型之前要判断是否为DBNull.Value。
其他的就不知道什么时候用到DBNull.Value了。
请问DBNull.Value属于什么类型?存储的是什么值,还有其他用途没,和NULL的区别是什么?

解决方案 »

  1.   

    不一样啊。
    DBNull.Value,, 是适用于向数据库的表中插入空值。而 null,是指在程序中表示空引用。 或者对象为空。就是没有实例化。
      

  2.   

    DBNull.Value应该是占用内存空间的 
    null指向空地址
      

  3.   

    row[column]的值为DBNull.Value的话,至少说明它是从数据库中取到值了,对应了数据库中的空值;但如果row[column]的值为null的话,说明没有从数据库中取到值。
    DBNull.Value是一个有着内存地址的具体类型的值,映射了数据库中的null值;而NULL则是空指向,不存在对应的内存地址。任何对象赋值为null后,内存就释放了。
      

  4.   

    DBNull.Value 相当与数据库的null;代表数据库里为nullnull 是你程序的空引用.
      

  5.   

    数据库表里的字段有NULL就是DBNULL 其余的判断就是NULL
      

  6.   

    DBNull.Value 用于dataset之类的保存在内存的
      

  7.   

    MSDN说明:DBNull 是一个单独的类,这意味着该类只能存在此实例。
    如果数据库字段的数据缺失,则您可以使用 DBNull.Value 属性将 DBNull 对象值显式分配给该字段。
    和null不一样。DBNull表求数据库字段的空值<NULL>,它也是一个值:DBNull.Value.ToString();返回空字符串
    而null表示空引用,string a=null; a.ToString();将无法编译。
      

  8.   

    也就是说,含意和用法上不同。
    DBNull.Value 多用向 SqlParameter 的参数对象设置值的时候,给一个空值:
    SqlParameter par  = new SqlParameter("@Re",SqlDbType.Varchar,30);
    par.Value = DBNull.Value;
    ...
      

  9.   

    那DBNull.Value还在什么地方能够用到?
    再问个不相关的问题 对象=NULL 和对象.Dispose()都是释放内存吗?这两个有什么区别?
      

  10.   

    Null是.net中无效的对象引用。
    DBNull是一个类。DBNull.Value是它唯一的实例。它指数据库中数据为空(<NULL>)时,在.net中的值。一般在向数据库插入空值的时候用到DBNull.Value。