执行datareader时,index超出范围

时间:2016-06-18 21:45:46

标签: c# mysql uwp

我尝试使用UWP连接到Mysql数据库。

      objConn.Open();
      MySqlCommand cmd = new MySqlCommand("select city_ID,city_Name from cities", objConn);
      MySqlDataReader dataReader = cmd.ExecuteReader(); // <------ Here

      int i = 0;
      while (dataReader.Read())
      {
         StudentsList.Items.Add("");
         StudentsList.Items.Add(dataReader.GetString(1).ToString());
         i++;
      }
      objConn.Close();

执行代码时出现错误:

  

指数超出范围。必须是非负的且小于集合的大小。   参数名称:startIndex

当应用到达此行时会发生错误:

MySqlDataReader dataReader = cmd.ExecuteReader();

2 个答案:

答案 0 :(得分:2)

我有同样的问题,在我的情况下,问题是数据库。您应该看到您的整数值是无符号的,这意味着此错误。你可以查看here

答案 1 :(得分:0)

当超出范围时,意味着该值不是索引示例

int[] myArray = {1, 2, 3, 4, 5, 6 };
console.writeline(myArray[6]);

因为索引以零开始

,你会得到超出范围的异常

指数:0 1 2 3 4 5

数组:1 2 3 4 5 6

所以当你使用(myArray[6]);时,实际上你在索引中拉出了第6个元素。如果你发现它只到5。