【发布时间】:2019-12-10 14:33:19
【问题描述】:
我试图测试我的列表是否正在从数据库中收集数据,但是当我尝试获取一个消息框以从列表中打印一个邮政编码时,它给了我一个例外 `System.ArgumentOutOfRangeException: 'Index was out of range。必须为非负数且小于集合的大小。
参数名称:索引'`
这是我已经编写和正在使用的方法
private List<string> GetPostcodes(string table)
{
connect = new MySqlConnection(connectionString);
connect.Open();
string selectString = "select postcode from " + table;
MySqlCommand cmd = new MySqlCommand(selectString,connect);
reader = cmd.ExecuteReader();
while (reader.Read())
{
postcodes.Add(reader.GetOrdinal("postcode").ToString());
}
connect.Close();
return postcodes;
}
列表postcodes 之前在我的代码中定义如下List<string> postcodes = new List<string>();
这就是我如何尝试测试邮政编码的集合
private void Button_Click1(object sender, RoutedEventArgs e)
{
string test1 = postcodes[1];
MessageBox.Show(test1);
}
【问题讨论】:
-
这不是c。
-
@SouravGhosh 感谢 m8
-
如果你的目标是索引 1;
postcodes[1],您实际上将针对第二个元素。你知道吗? (第一个使用postcodes[0]) -
旁注:使用
using语句来处理实现IDisposable的对象... -
我们尝试了第一个索引
postcodes[0],这也给出了同样的错误。关于索引超出范围。在我们看不到的GetPostcodes方法中检索邮政编码的方式是否存在问题?