zoukankan      html  css  js  c++  java
  • System.DBNull.Value与Null的区别

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

    以下是我测试的一个例子。
    例:表tbl_Student
    id    name    address
    1      jim      <NULL>

    将上述表数据填充到.net 的名为dt的DataTable中。
    dt.Rows[0]["address"]不等于null但是等于DBNull.Value.
    可见null表示一个对象的指向无效,即该对象为空对象。
    DBNull.Value表示一个对象在数据库中的值为空,或者说未初始化,DBNull.Value对象是指向有效的对象。

    另外注:对上述dt,如果有如下代码:dt.Rows[0][100]。结果如何?
    并非想象中的null。而是出现异常:索引超出数组界限。
    对于普通的引用类型变量,如果指向对象为null,则会提示:未将对象引用设置到对象实例。但对于使用dt.Rows[i][j]取值,如果第i行存在但i行没有j列,则直接出现异常,不会返回一个指向null的dt.Rows[i][j]。
    所以:使用(dt.Rows[0][100]!=null)判断没有意义。为避免0行的100列不存在。可以判断(dt.Rows[0].ItemArray.Length>100).

  • 相关阅读:
    蒟蒻的填坑计划
    现在的状态....
    date modify
    set source
    image source
    simple auth
    net
    bridge
    iptable
    namespace
  • 原文地址:https://www.cnblogs.com/ShaYeBlog/p/2980174.html
Copyright © 2011-2022 走看看