C# 执行错误:索引超出范围。必须为非负数且小于集合的大小

C# 执行错误:索引超出范围。必须为非负数且小于集合的大小,c#,sql,datagridview,C#,Sql,Datagridview,我看到了所有异常错误,但我没有发现问题。我有第二个,有街道ID,街道名称,法西里一号,法西里二号。当我在DataGridViewComboxColumn中选择一个值时,我正在使用datagridview填充一行,但它给了我一个异常错误: 索引超出范围。必须为非负数且小于集合的大小 在dataGridView7[e.RowIndex,2]上,Value=drFound[“fasileOne”] 代码是: private void dataGridView7_CellValueChanged(obj

我看到了所有异常错误,但我没有发现问题。我有第二个,有街道ID,街道名称,法西里一号,法西里二号。当我在DataGridViewComboxColumn中选择一个值时,我正在使用datagridview填充一行,但它给了我一个异常错误:

索引超出范围。必须为非负数且小于集合的大小

在dataGridView7[e.RowIndex,2]上,Value=drFound[“fasileOne”]

代码是:

private void dataGridView7_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if ((e.RowIndex >= 0) && (e.ColumnIndex == 1)) // Assuming this is the streetId
            {
                int streetId = Convert.ToInt16(dataGridView7.Rows[e.RowIndex].Cells[e.ColumnIndex].Value);
                DataRow drFound = tblSecondary.Rows.Find(streetId);
                if (drFound == null)
                {
                    MessageBox.Show("ddhhdhd");
                }
                else
                {
                    dataGridView7[e.RowIndex, 2].Value = drFound["fasileOne"];
                    dataGridView7[e.RowIndex, 3].Value = drFound["fasileTwo"];
                }
            }
以下是数据表am使用:

public IncidentForm()
tblSecondary = new DataTable();
SqlCommand cmd2 = cnn.CreateCommand();
cmd2.CommandText = "select * from street";
SqlDataAdapter sdr2 = new SqlDataAdapter(cmd2);
cmd2.CommandType = CommandType.Text;
cmd2.Connection = cnn;
sdr2.Fill(tblSecondary);
tblSecondary.PrimaryKey = new DataColumn[] { tblSecondary.Columns["streetId"] };
}
问题在于这个问题。
第一个索引是ColumnIndex,第二个是RowIndex

 dataGridView7[2, e.RowIndex].Value = drFound["fasileOne"];
 dataGridView7[3, e.RowIndex].Value = drFound["fasileTwo"];
问题在于这个问题。
第一个索引是ColumnIndex,第二个是RowIndex

 dataGridView7[2, e.RowIndex].Value = drFound["fasileOne"];
 dataGridView7[3, e.RowIndex].Value = drFound["fasileTwo"];

它是先列后行,而不是先行后列。是的,非常感谢你,先生。当我更改第一个组合框的值时,我应该使用什么事件,所有的值都会被删除,直到我选择第二个组合框,这样行是updateEdit的列,然后是行,而不是行,然后是列。是的,非常感谢,先生。当我更改第一个组合框的值时,应该使用什么事件,直到我选择第二个组合框,以便行被更新为止,所有的值都被删除