c#;dataGridView;索引超出范围。必须为非负值并小于集合大小。

过去的猴子 2017-05-10 11:28:10
for (int i = 0; i < Genes; ++i)
{
DataGridData[0] = s[i + 1];
DataGridData[1] = mother[i];
DataGridData[2] = offspring[i];
DataGridData[3] = father2[page - 1][i];
DataGridData[4] = fatherRatio[page - 1, i].ToString();
dataGridView1.Rows.Add(DataGridData);
}
for(int i=0;i<Genes;++i)
{
mother[i]=dataGridView1.Rows[i].Cells["Column1"].Value.ToString();
}
我想让用户在表格中修改数据再读到数组里,但是红字这里一直报错:索引超出范围。必须为非负值并小于集合大小。
实在不知道哪里出错了,还请大神们指点
...全文
864 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
秋的红果实 2017-05-16
  • 打赏
  • 举报
回复
不是 是否使用数据库得问题,你要学会调试,在mother[i]=dataGridView1.Rows[i].Cells["Column1"].Value.ToString();设置一个断点,看看出问题时I值是多少,你的datagridview总共是多少行 datagridview的数据源可以是非数据库的其他文件
佛不问苍生 2017-05-16
  • 打赏
  • 举报
回复
引用 6 楼 gyw0707 的回复:
我加了个MessageBox.Show(dataGridView1.Rows.Count.ToString()); 很尴尬,结果是0 又仔细查了一下要数据绑定,要用数据库。可我没用过数据库,请问有别的解决办法吗,还是必须要用数据库? 原始数据是从txt读进来的,我就是想显示出来,让用户可以修改,再返回到数组进行运算,之前用textBox,但觉得太难看。
dataGridView也可以一行一行增加,读几行数据增加几行,相比绑定,就是性能可能要差点。
正怒月神 2017-05-10
  • 打赏
  • 举报
回复
3楼正解,dataGridView1没这么多行
JustWantToFly 2017-05-10
  • 打赏
  • 举报
回复
你要看看Genes是多少,mother[i]和dataGridView1.Rows[i]的最大索引是多少,会不会小于Genes,如果小的话索引就超出界限,会报这个错的,
xdashewan 2017-05-10
  • 打赏
  • 举报
回复
这个mother集合数量和dataGridView1的行数不匹配
打老虎zz 2017-05-10
  • 打赏
  • 举报
回复
应该是>=Genes?
打老虎zz 2017-05-10
  • 打赏
  • 举报
回复
mother的元素个数==Genes?
tangx10 2017-05-10
  • 打赏
  • 举报
回复
行数的索引超出范围了
xdashewan 2017-05-10
  • 打赏
  • 举报
回复
引用 6 楼 gyw0707 的回复:
原始数据是从txt读进来的,我就是想显示出来,让用户可以修改,再返回到数组进行运算,之前用textBox,但觉得太难看。
dataGridView并非一定要绑定数据源才能使用,你可以网上找找例子的
过去的猴子 2017-05-10
  • 打赏
  • 举报
回复
我加了个MessageBox.Show(dataGridView1.Rows.Count.ToString()); 很尴尬,结果是0 又仔细查了一下要数据绑定,要用数据库。可我没用过数据库,请问有别的解决办法吗,还是必须要用数据库? 原始数据是从txt读进来的,我就是想显示出来,让用户可以修改,再返回到数组进行运算,之前用textBox,但觉得太难看。

110,526

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧