怎么判断dataset里面一个字段为空,加入为空的话.tostring()就会报错。ds1.Tables[0].Rows[0]["haha"].ToString(); 加入这个字段为空的话,那么ToString()就会报错。那应该怎么判断呢?
               

解决方案 »

  1.   

    我感觉只要ds1.Tables[0].Rows.count>=1就不会报错。
      

  2.   

    if (ds1.Tables[0].Rows[0]["haha"] == DBNull.Value)
      

  3.   

    object data = ds1.Tables[0].Rows[0]["haha"]
    if( Convert.IsDBNull(data) && !string.IsNullOrEmpty(data) )
    {
       string value = data.ToString();
    }
      

  4.   

    少写个“!”
    object   data   =   ds1.Tables[0].Rows[0]["haha"] 
    if(   !Convert.IsDBNull(data)   &&   !string.IsNullOrEmpty(data)   ) 

          string   value   =   data.ToString(); 
    }
      

  5.   

    或者直接用as关键字(转换失败也不抛出异常。):string value = ds1.Tables[0].Rows[0]["haha"] as string;
      

  6.   

    if   (ds1.Tables[0].Rows[0]["haha"]   ==   DBNull.Value)
    可以实现。
    但是string value = ds1.Tables[0].Rows[0]["haha"] as string;也可以么?
    又学了一招,呵呵
      

  7.   

    ds1.Tables[0].Rows[0]["haha"] is DBNull ? "":ds1.Tables[0].Rows[0]["haha"].ToString()
      

  8.   

    ds1.Tables[0].Rows.count> =1这个只是判断里面有没有记录吧 但是假如有记录,但其中有一条记录的其中一个字段是空的,那么tostring 就会报错的。
      

  9.   

    try
    {
        Response.Write(ds1.Tables[0].Rows[0]["haha"].ToString());
    }
    catch
    {
       //Do something...
    }
      

  10.   

    使用Convert.ToString(your string)方法就不会出现你说的 情况了,即时是null会转换成空字符串。
      

  11.   

    如果是數據庫中撈取的資料,就算有字段為空用.ToString()方法也不會報錯啊,只是返回空字串.
    不過在轉換為字串的時候最好還是使用Convert.ToString()方法,可以避免轉換null時報錯.
    要判斷數據庫中撈取的字段是否為空可以用if (ds1.Tables[0].Rows[0]["haha"] is DBNull){}或
    if (ds1.Tables[0].Rows[0]["haha"] == DBNull.Value){}