获取 System.ArgumentOutOfRangeException,同时在两个 Datagridview 之间复
本文关键字:两个 Datagridview 之间 ArgumentOutOfRangeException System 获取 | 更新日期: 2023-09-27 18:30:41
如果有人可以帮助解决以下问题:
System.ArgumentOutOfRangeException:索引超出范围。必须是 非负数且小于集合的大小。帕拉米特名称 :指数
代码:
for (int i = 0; i <= dataGridView2.Rows.Count ; i++)
{
for (int j = 0; j <= dataGridView3.Rows.Count; j++)
{
if (!string.IsNullOrEmpty(dataGridView2.Rows[i].Cells["supplier_name"].Value as string) && !string.IsNullOrEmpty(dataGridView3.Rows[j].Cells["brands_supplier"].Value as string))
{
if (dataGridView2.Rows[i].Cells["supplier_name"].Value.ToString() == dataGridView3.Rows[j].Cells["brands_supplier"].Value.ToString())
{
dataGridView2.Rows[i].Cells["brands_name"].Value += dataGridView3.Rows[j].Cells["brands_nume"].Value + " ";
}
}
else
{
break;
}
}
}
您尝试访问不存在的数据网格元素。
您必须将for
条件设置为
for (int i = 0; i < dataGridView2.Rows.Count ; i++)
和
for (int j = 0; j < dataGridView3.Rows.Count; j++)
不要使用 <=
因为 dataGridView.Rows[]
的索引是从 0 开始的。
例如,如果数据网格包含 3 个元素,则可以通过以下方式访问它们:
var row1 = dataGrid.Rows[0]
var row2 = dataGrid.Rows[1]
var row3 = dataGrid.Rows[2]
您尝试访问
var row4 = dataGrid.Rows[3] // Error because this item doesn't exist (System.ArgumentOutOfRangeException)
另外,但此项目不存在
我认为循环中的问题
for (int i = 0; i <= dataGridView2.Rows.Count ; i++)
你再跑一次
用
for (int i = 0; i < dataGridView2.Rows.Count ; i++)