一般来说...持久层中定义的持久对象如下:
class student
{
  private int m_id;
  private string m_name;
  ...  public int ID
  { 
    set{ m_id = value; }
    get{ return m_id; }
  }  public string Name
  {
    set{ m_name = value; }
    get{ return m_name; }
  }
  ...
}
  如上设计的持久对象, 如果数据库中需要对字段设置NULL值,该如何解决呢?

解决方案 »

  1.   

    这样的持久层对象元素可以赋值成Null(C#)或Nothing(VB.NET)的
      

  2.   

    可空类型,可用它对应数据库中的null 值
      

  3.   

    赋值的时候
    使用  DBNull.Value
    student test = new student()
    test.name = DBNull.Value;
      

  4.   

    你可以在写字段的时候加上判断。
    public string Name
      {
        set{ 
            if(value == null)
              {
                 value = null;
               } 
            else
             {m_name = value;}
    }
        get{ return m_name; }
      }
      

  5.   

    string类型可以等于null, 但是值类型不行啊...可以专门为每个属性加一个HasValue的属性,但是这样麻烦...
    也可以用Nullable类型,但是据说耗资源...还有其他办法么...还有一点就是赋过值和未赋过值该如何区别呢?
      

  6.   

    其他值类型的也可以.如何你是用的2005
    int?
    decimal? 完全可以大到效果
                int? number1 = null;
                number1 = 123456;
                decimal? number2 = null;
                number2 = 3434;
                MessageBox.Show(number1.ToString());
                MessageBox.Show(number2.ToString());
      

  7.   

    DBNull.Value 在某中情况下可以.但是LZ这个ID不能用DBNull.Value吧
    class student
    {
      private int m_id;
      private string m_name;
      ...  public int ID
      { 
        set{ m_id = value; }
        get{ return m_id; }
      }  public string Name
      {
        set{ m_name = value; }
        get{ return m_name; }
      }
      ...
    }
    int 类型的你能给他赋DBNll.Value么?如果改成下面 
    class student
    {
      private int? m_id;
      private string m_name;
      ...  public int? ID
      { 
        set{ m_id = value; }
        get{ return m_id; }
      }  public string Name
      {
        set{ m_name = value; }
        get{ return m_name; }
      }
      ...
    }
    那么这个ID完可以赋值null
      

  8.   

    网上说用int?很耗资源...不知道是不是真的?
      

  9.   

    In C# 2.0, Nullable Type is a good approach for this.