2015-07-13 78 views
0

未处理的,然后会出现以下错误:System.ArgumentOutOfRangeException是由用户代码

System.ArgumentOutOfRangeException是由用户代码未处理。指定的参数超出了有效值的范围。参数名:索引

错误发生在下面这被注释掉行:

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 
} 
+6

显然,GridView中没有9列。 –

+4

你知道第一个单元格是'row.Cells [0]'? –

+0

尝试调试和检查对象值,它会使得更容易得到答案 – Tamir

回答

1

ArgumentOutOfRangeException意味着你提供了一个值,也就是过大或过小,你在做什么。在您的特定例子中,你正在试图访问一个数组的内容:

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

可以忽略大部分线路的,错误是发生只是在本节:

row.Cells[8] 

它告诉你那个Cells数组,没有9列。请记住,这是0索引,所以索引8意味着访问列9.与访问第一列相反,您可以使用row.Cells[0]

因此,你在某个地方做了一个糟糕的假设,需要先检查你已经获得了哪些数据。如果您在该行上插入断点,您应该能够深入了解row.Cells,以便确切了解您需要使用哪些列。

相关问题