解释一下,字段a的类型为int,允许空。用sqldatareader.GetInt32()读数据的时候,如果字段的值不为空,就可以
用SqlDataReader.GetInt32().ToString()读出来,但是如果为空,就会报错。声明:字段类型不能更改

解决方案 »

  1.   

    if(reader["columnName"] != null)
    {
      a = int.parse(reader["columnName"].ToString());
    }
      

  2.   

    用null来判断不行,我是这么写的
    if(reader.GetInt32(2)==null)
      return " ";
    else
      return reader.GetInt32(2).ToString();
      

  3.   

    应该是:
    if(reader.GetInt32(2)==DBNull.Value
      return " "; 
    else 
      return reader.GetInt32(2).ToString(); 
      

  4.   


    return SqlDataReader.GetInt32(2) is DBNull ? " " : SqlDataReader.GetInt32(2.ToString();
      

  5.   

    用GetObject方法返回object判断是否是空值,不是空可将object转换成int
      

  6.   

    int a = dr["xxx"] == DBNull.Value?0:Int.Parse(dr["xxx"].ToString());