2015-07-13 80 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,以便確切瞭解您需要使用哪些列。

相關問題