我的Windows应用程序中有一个datagridview。我想在其中使用datagridview单元格(从数量,价格,税,折扣)计算总金额并显示在总gridview单元格中。 但我得到这个错误。我也采取了可空类型。如何克服这个问题。 ? 这是我的cellendedit事件代码
private void datagrid_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
int val1 = Convert.ToInt32(datagrid.Rows[e.RowIndex].Cells[2].Value);
int val2 = Convert.ToInt32(datagrid.Rows[e.RowIndex].Cells[3].Value);
int val3 = Convert.ToInt32(datagrid.Rows[e.RowIndex].Cells[4].Value);
int val4 = Convert.ToInt32(datagrid.Rows[e.RowIndex].Cells[5].Value);
datagrid.Rows[e.RowIndex].Cells[6].Value = ((val2 + val3) * val1) - val4;
}
答案 0 :(得分:0)
如果您的某个单元格为DBNull.Value,则会出现此问题。通常我会检查一个单元格是否不等于DBNull.Value,然后将其转换为in。如果你的值实际上是一个真正的null,那么我也假设将你的值设置为0就可以了。
int value1 = datagrid.Rows[e.RowIndex].Cells[2].Value == DBNull.Value ? 0 : Convert.ToInt32(datagrid.Rows[e.RowIndex].Cells[2].Value);
答案 1 :(得分:-1)
使用int.TryParse
方法代替Convert.ToInt
。