Pdesc = GridView1.Rows[0].Cells[3].Text; //字段在数据库中未被赋值,为nullif (Pdesc == null) //此if语句为何无效?
{
...
}

解决方案 »

  1.   

    .Text的值是不会为null的,要判断是否为“”值
      

  2.   

     String.IsNullOrEmpty(GridView1.Rows[0].Cells[3].Text)
      

  3.   

    任何系统控件的Text属性是不可能有null情况存在的,只有空字符串的存在或者非空字符串.可以这么判断
    if   (Pdesc.Length   ==   0)
    {
    }或者象2楼的也可以
      

  4.   

    不过相对的话,用length判断效率要高得多,但不是所有情况都适用.
      

  5.   

    仅通过Cell.Text属性是没有办法区分这个值是DbNull,还是“”的。
    因为对于Text属性来说,如果数据是NULL值,会显示“”,如果真的是“”也会显示“”。因此,对于准确的来判断值是否为NULL值,可以通过设置GridView的DataKeyNames来解决,把要判断的列的名称以逗号分开设置,然后以DataKeys属性来获取其真实的值:object dbValue = this.gridView.DataKeys[index].Value;
    if (dbValue!=DbNull.Value)
    {
        //dbValue不是空值。
    }
      

  6.   

    控件的text是都不可能为null值的.解决办法上面的已经列举的很清楚了.
      

  7.   

    多谢兄弟们的热心相助,但试了一下好象都不行.刚翻看了.net生成的html文本,数据库中的null值在html中表达为了 Pdesc   =   GridView1.Rows[0].Cells[3].Text;   //字段在数据库中未被赋值,为null if   (Pdesc   ==   " ")   //通过了

    ... 
    }
      

  8.   

    if(Pdesc == DbNull.Value)       
      

  9.   

    dbValue指从数据库读出值
    方法为:
    Boolean isEquals = Object.Equals(dbValue, DBNull.Value)
    或:Boolean isEquals = dbValue.Equals(DBNull.Value)