MySqlDataReader dr = comm.ExecuteReader();
                        if (dr.Read())
                        {
                            if (dr["grade"] !=null)
                                grate = Convert.ToInt32(dr["grade"]);
                            if (dr["begintime"] !=null)
                                begintime = dr["begintime"].ToString();
                            if (dr["endtime"] !=null)
                                endtime = dr["endtime"].ToString();
                        }
报错如下:could not find specified column in results:grade

解决方案 »

  1.   

    grade这个字段不存在。检查表或者sql。
      

  2.   

    在结果中找不到指定的列:grade
    说的很清楚明白啊
      

  3.   

    关键是数据中有这个字段哦
    不过字段类型是:tinyint  是不是要改为INT型的?
      

  4.   

    tinyint  返回的是 byte[] 
      

  5.   

    习惯上tinyint都用来表示bool类型的
    0为false,1、2、3类型的则为true;
    你最好改成int类型
    或者dr["grade"] !=False
      

  6.   

    错误提示:在结果中找不到指定的列 : grade如果你确定数据库有这个字段, 那就检查是否是dr数据源没有取出这个字段检查下sql语句
      

  7.   

     
    dr["xx"] 这个读取出来的都不是objct类型的么,与数据库定义的类型还有关系吗?
      

  8.   

    有这个字段,我单独运行SQL语句,查出这三个字段了,是NULL而已
      

  9.   

    sql = "select begintime,endtime,grade from jc_learner_history where learner_id=" + id + " order by pay_history_id desc LIMIT 0,1";
      

  10.   

    你把grade 字段改个名字试试吧 最快速的方法了 加个s什么的