SqlDataReader读到有的字段为空值的时候报错!说不可读取!怎么解决?
SqlDataReader sdr=cmd.ExecuteReader();sdr.getString(7);这个时候报错了,怎么解决?

解决方案 »

  1.   

    调试一下看sdr有没有值啊,写个代码输出来看看!
      

  2.   

    使用SqlDataReader.GetValue方法,返回值类型:System.Object,此方法对于 null 数据库列返回 DBNull。
    如果SqlDataReader读的那一行数据的某列有为空的可能,结合一个三目运算符。
    以楼主的第8列为例:
    string result = (sdr.GetValue(7) == DBNull) ? "" : sdr.GetValue(7).ToString(); 
     
      

  3.   

    先判断该列是否为空再取值。
    if(sdr[7]!=DBNull.Value)
       sdr.getString(7);
      

  4.   

    读取数据的时候最好先判断一下,比如:
     if (reder[7].Equals(DBNull.Value) == false)
          article.Article_author = reder.GetString(5);
      

  5.   

    SqlDataReader sdr=cmd.ExecuteReader();
    if(sdr.HasRows&& sdr.Read())
    {
     string s=sdr[7]!=DBNull.Value?sdr.getString(7):"";
    }