【问题标题】:IndexOutOfRangeException was unhandled by user code用户代码未处理 IndexOutOfRangeException
【发布时间】:2013-07-14 06:26:43
【问题描述】:

我的数据库设计是这样的:

列名:名称,数据类型:varchar(50)

当我将数据类型转换为 Visual Studio 时出现异常

IndexOutOfRangeException 未被用户代码处理:索引超出了数组的范围。

using (var reader = command.ExecuteReader())
                        return reader.Cast<System.Data.IDataRecord>()
                            .Select(x => new JobInfo()
                            {

                                Name = x.GetString(0),


                            }).ToList();

【问题讨论】:

    标签: c# asp.net sql linq


    【解决方案1】:

    x.GetString(0) 可能是您的问题。数组在 C# 中是从 0 开始的。如果该项目没有元素,则尝试获取“第 0 个”(第一个)将导致抛出异常。这与尝试获取 8 元素数组中的第 9 个元素是一回事。

    【讨论】:

      【解决方案2】:

      当不存在记录时,您正在尝试检索记录。先检查你的datareader是否有数据:

      if (reader.HasRows)
      {
        //get the record here
      }
      

      【讨论】:

      • 如果没有记录,.Select() 将返回一个空集合。我认为这不是问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-28
      • 2014-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多