在线等——这句代码有问题吗?怎么报错

消失的尘芥 2012-04-12 03:14:43

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
...全文
190 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
chai1338 2012-04-12
  • 打赏
  • 举报
回复
你把grade 字段改个名字试试吧 最快速的方法了 加个s什么的
消失的尘芥 2012-04-12
  • 打赏
  • 举报
回复
sql = "select begintime,endtime,grade from jc_learner_history where learner_id=" + id + " order by pay_history_id desc LIMIT 0,1";
风2013 2012-04-12
  • 打赏
  • 举报
回复
把你得sql 贴出来看看
消失的尘芥 2012-04-12
  • 打赏
  • 举报
回复
有这个字段,我单独运行SQL语句,查出这三个字段了,是NULL而已
风2013 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
习惯上tinyint都用来表示bool类型的
0为false,1、2、3类型的则为true;
你最好改成int类型
或者dr["grade"] !=False
[/Quote]
dr["xx"] 这个读取出来的都不是objct类型的么,与数据库定义的类型还有关系吗?
风2013 2012-04-12
  • 打赏
  • 举报
回复
错误提示:在结果中找不到指定的列 : grade

如果你确定数据库有这个字段, 那就检查是否是dr数据源没有取出这个字段。。。检查下sql语句
chai1338 2012-04-12
  • 打赏
  • 举报
回复
习惯上tinyint都用来表示bool类型的
0为false,1、2、3类型的则为true;
你最好改成int类型
或者dr["grade"] !=False
消失的尘芥 2012-04-12
  • 打赏
  • 举报
回复
那要怎么取值哦?
Daanlex 2012-04-12
  • 打赏
  • 举报
回复
tinyint 返回的是 byte[]
消失的尘芥 2012-04-12
  • 打赏
  • 举报
回复
关键是数据中有这个字段哦
不过字段类型是:tinyint 是不是要改为INT型的?
EnForGrass 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
C# code

MySqlDataReader dr = comm.ExecuteReader();
if (dr.Read())
{
if (dr["grade"] !=null)
……
[/Quote]
检查数据库字段对不对?也许你修改过字段
mizuho_2006 2012-04-12
  • 打赏
  • 举报
回复
你的表中有grade这列吗
满衣兄 2012-04-12
  • 打赏
  • 举报
回复
在结果中找不到指定的列:grade
说的很清楚明白啊。。。
threenewbee 2012-04-12
  • 打赏
  • 举报
回复
grade这个字段不存在。检查表或者sql。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧