Iam获取错误 - “System.IndexOutOfRangeException:CountryID”任何人都可以告诉我们有什么问题 [英] Iam Getting an error - "System.IndexOutOfRangeException: CountryID" Can Any One Tells What is the problem

查看:88
本文介绍了Iam获取错误 - “System.IndexOutOfRangeException:CountryID”任何人都可以告诉我们有什么问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

public class ContinentDataAccessLayer
{
  public static List<continent> GetAllContinents()
  {
    List<continent> listContinents = new List<continent>();
    
    string CS = ConfigurationManager.ConnectionStrings["con"].ConnectionString;
    using (SqlConnection con = new SqlConnection(CS))
    {
      SqlCommand cmd = new SqlCommand("Select CountryName from country", con);
      con.Open();
      SqlDataReader rdr = cmd.ExecuteReader();
      while (rdr.Read())
      {
        Continent continent = new Continent();
        continent.ContinentId = Convert.ToInt32(rdr["CountryID"]);
        // System.IndexOutOfRangeException: CountryID
        continent.ContinentName = rdr["CountryName"].ToString();
    
        listContinents.Add(continent);
      }
    }

    return listContinents;
  }
}

推荐答案

您只在SQL查询中选择CountryName,但稍后尝试访问CountryID ...

更新你的SQL以选择CountryID

You are selecting only CountryName in your SQL query, but later try to access CountryID...
Update your SQL to select also CountryID
Select CountryName, CountryID from country


您的查询不会返回名为CountryID的列。将您的查询更改为



your query doesn't return a column named 'CountryID'. change your query into

Select CountryName, CountryID from country





此外你可以使用调试器来解决这些问题。

步骤超过F10

步入-F11

断点-F9

开始调试-F5



等等。



moreover you can use the debugger for such issues.
step over-F10
step into-F11
breakpoint-F9
start debug-F5

so on.


这篇关于Iam获取错误 - “System.IndexOutOfRangeException:CountryID”任何人都可以告诉我们有什么问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆