下面代码的目的是总结datagridview在订单系统中无限添加的所有索引3,并将其显示在名为的标签中Price.
private void Add_Click(object sender, EventArgs e)
{
dgvSelected.Rows.Add(dgvItem.SelectedCells[0].Value.ToString(),
dgvItem.SelectedCells[1].Value.ToString(),
dgvItem.SelectedCells[2].Value.ToString(),
dgvItem.SelectedCells[3].Value.ToString());
for (int i = 0; i < dgvSelected.Rows.Count; i++)
{
price = price + int.Parse(dgvSelected.Rows[i].Cells[3].Value.ToString());
Price.Text = price.ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
问题是它一直在说:
"你调用的对象是空的."
...作为以下行的错误:
price = price + int.Parse(dgvSelected.Rows[i].Cells[3].Value.ToString());
Run Code Online (Sandbox Code Playgroud)
表中应该没有null,但错误仍然是坚持存在null.表中有多行,但它可以读取的唯一行是第1行.当涉及到具有值的第二行时,它会说出有关的错误.
当然编程语言是错误的.它向您报告您要使用实际上为null的对象引用.
在以下部分dgvSelected.Rows[i].Cells[3].Value.ToString()之一是null
dgvSelecteddgvSelected.RowsdgvSelected.Rows[i]dgvSelected.Rows[i].CellsdgvSelected.Rows[i].Cells[3]dgvSelected.Rows[i].Cells[3].Value如您所见,您应该进行大量检查以确保这些objets都不为null
编辑:Strikeout中的一些,正如在注释中正确指出的那样,如果循环不为null,则不会输入循环.
| 归档时间: |
|
| 查看次数: |
580 次 |
| 最近记录: |