日期:2014-05-18  浏览次数:21002 次

这是怎么了,总是显示“索引超出范围。必须为非负值并小于集合大小”?
private void dataGridViewx2_CellValueChanged(object sender, DataGridViewCellEventArgs e)
  {
 
  if (sqlarray1.Count < 4 & sqlarray2.Count < 4)
  {
  string value1 = "列名";
  string value2 = "行名";
  sqlarray1.Add(value1);
  sqlarray2.Add(value2);


  }
  else
  {
  string value1 = Convert.ToString(dataGridView2[e.ColumnIndex, e.RowIndex].Value);
  string Column0 = Convert.ToString(dataGridView2.Rows[e.RowIndex].Cells[0].Value);
  sqlarray1.Add(value1);
  sqlarray2.Add(Column0);
  for (int i = 4; i <= sqlarray1.Count; i++)
  {
  string name = sqlarray2[i].ToString();
  string value = sqlarray1[i].ToString();
  }
  }
   


  }

------解决方案--------------------

for (int i = 4; i <= sqlarray1.Count-1; i++) //这个地方改下
{
string name = sqlarray2[i].ToString();
string value = sqlarray1[i].ToString();
}

成功就给分吧...数组是从0开始计数的它的长度是array.length 所以只能到array.length-1