【问题标题】:SqlDataReader out of range exception.. cannot solve itSqlDataReader 超出范围异常.. 无法解决
【发布时间】:2017-02-10 22:32:27
【问题描述】:

我一直试图让它工作近一个小时,但无法理解为什么它不工作。请帮忙!!这是我的代码

SqlDataReader rs = cmdGet.ExecuteReader();
rs.Read();
var id = Convert.ToInt32(rs["id"]);
var mt = rs["mt"].ToString();

SQL 语句是这样的:

  SELECT TOP 1 
      id = 0,
      mt = MT
  FROM 
      MyTable
  ORDER BY 
      2

我 id = 0 并且代码在 mt 行中断。抛出:

System.IndexOutOfRangeException

怎么了?看了很多帖子都解决不了。

【问题讨论】:

  • id = 0?嗯?那是在做什么?您是否尝试过在 SSMS 之类的工具中运行该查询以查看您得到了什么?
  • 如果你运行查询你会得到什么?
  • 您的桌子实际上是什么样子的?在当前查询中很难准确辨别您正在尝试做什么。
  • 你的表中的 if 字段是 mt 还是 MT?
  • MT 是表

标签: c# sql-server


【解决方案1】:

异常表示您没有名为 mt 的字段,因此您需要将查询更改为此,它应该可以工作:

SELECT TOP 1 id, mt
FROM MyTable
 WHERE id = 0
ORDER BY 2

【讨论】:

  • 很高兴为您提供帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-02
  • 1970-01-01
  • 1970-01-01
  • 2016-12-08
  • 2014-11-12
  • 2014-03-06
相关资源
最近更新 更多