【发布时间】:2013-09-16 06:29:11
【问题描述】:
我有这个表单应用程序项目。我上传了销售领域的快照。有两个datagridview。底部datagirdview 包含TAX details。包含底部datagrid 来自database except “Amount” column。用户提供或自动计算的金额列值。我写一个代码。当我尝试执行时,它显示错误。 Index was out of range. Must be non-negative and less than the size of the collection.Parameter name: index。怎么解决??
捕捉::
代码如下:
private void dgvSalesFooterAdd_CellStateChanged(object sender, DataGridViewCellStateChangedEventArgs e)
{
decimal Total = 0;
decimal a=Convert.ToDecimal(lblTotalAdd.Text);
for (int i = 0; i <dgvSalesFooterAdd.Rows.Count ; i++)
{
dgvSalesFooterAdd.Rows[i].Cells[4].Value = a + (a * (Convert.ToDecimal(dgvSalesFooterAdd.Rows[i].Cells[3].Value)/100));
Total += Convert.ToDecimal(dgvSalesFooterAdd.Rows[i].Cells[4].Value);
}
lblFinalTotalAdd.Text = Total.ToString();
}
[注意:错误
dgvSalesFooterAdd.Rows[i].Cells[4].Value = a + (a * (Convert.ToDecimal(dgvSalesFooterAdd.Rows[i].Cells[3].Value)/100));
Total += Convert.ToDecimal(dgvSalesFooterAdd.Rows[i].Cells[4].Value);
这两条线。]
【问题讨论】:
-
看起来它不能抛出异常,除非你犯了一些错字,其中
j被用作index而不是i。顺便说一句,j是为了什么? -
@KingKing:我使用 j 只是为了测试。省略它。好的,我会更新它
-
很难看出哪里出了问题。当你调试这个时你看到了什么?有多少行/单元格?
-
@Halvard:: 项目运行良好,期待此页面。在这个 datagridview 中有 5 列。行大小不固定。
标签: c# winforms ms-access datagridview oledb