System.ArgumentOutOfRangeException未被用户代码处理

时间:2015-07-13 11:30:22

标签: c# asp.net

当我执行我的应用程序时,会发生以下错误:

  

System.ArgumentOutOfRangeException未被用户代码处理。指定的参数超出了有效值的范围。参数名称:index

错误发生在下面注释的行上:

private void helper_GeneralSummary(GridViewRow row)
{
 double HoldingDays = Convert.ToDouble(row.Cells[6].Text);
 double AbsReturn = Convert.ToDouble(row.Cells[7].Text); 
 double AnnReturn = (AbsReturn / HoldingDays) * 365;
 row.Cells[8].Text = AnnReturn.ToString("#,0.00"); //Error occured
}

1 个答案:

答案 0 :(得分:1)

ArgumentOutOfRangeException表示您提供的值太大或太小,无法正常运行。在您的特定示例中,您尝试访问数组的内容:

row.Cells[8].Text = AnnReturn.ToString("#,0.00");

您可以忽略该行的大部分内容,错误发生在本节中:

row.Cells[8]

它告诉你Cells数组没有9列。请记住,这是0索引,因此索引8表示访问列9.相反,要访问第一列,您将使用row.Cells[0]

因此,您在某处做了一个错误的假设,需要先检查您从系统中获取的数据。如果您在该行上粘贴断点,您应该能够深入了解row.Cells,看看您必须使用哪些列。