c#error:输入的字符串格式不正确

时间:2012-06-19 08:56:19

标签: c# datagridview

我有一个可编辑的数据网格视图。我得到一个单元格的值,然后计算另一个单元格的值。为此,我处理了CellEndEdit和CellBeginEdit事件。

quantity = 0, quantity1 = 0, quantity_wt1 = 0, quantity_wt = 0, ekundag = 0;
private void grdCaret_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
    try
    {
        string value = grdCaret.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
        if (e.ColumnIndex == 1)
        {
            int val = int.Parse(value);
            quantity = val;
            ekundag = ekundag + quantity;
            tbTotDag_cr.Text = ekundag.ToString();
        }

        if (e.ColumnIndex == 2)
        {
            float val = float.Parse(value);
            total = val;
            ekunrakam = ekunrakam + total;
            tbTotPrice_cr.Text = ekunrakam.ToString();
        }
        grdCaret.Columns[3].ReadOnly = false;
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message.ToString());
    }
}

private void grdCaret_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
    rate = 0;
    quantity1 = quantity;
    total1 = total;
    rate = (total1 / quantity1);
    if (e.ColumnIndex == 3)
    {
        grdCaret.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = rate.ToString();
        grdCaret.Rows[e.RowIndex].Cells[e.ColumnIndex].ReadOnly = true;
        //  quantity = 0;
        //   total = 0;
    }
}

在网格中,我有列数量,总数和比率。我在这里得到了上述错误:

if (e.ColumnIndex == 1)
{
    int val = int.Parse(value);
    quantity = val;
    ekundag = ekundag + quantity;
    tbTotDag_cr.Text = ekundag.ToString();
}

当我输入数量并单击gridview中的总列时。请帮我解决这个问题

4 个答案:

答案 0 :(得分:1)

AFAIK int.Parse()函数可能会导致这种异常。

您是否尝试检查单元格中的值?是不是可能,其他一些字符在单元格中,而不仅仅是数字?例如,白色空间。

答案 1 :(得分:0)

您输入Cell的值无法解析为Integer,因此会失败@ int val = int.Parse(value);

答案 2 :(得分:0)

尝试使用Text代替ToString()

string value = grdCaret.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.Text;

取代

 string value = grdCaret.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();

答案 3 :(得分:0)

您的输入字符串'value'的格式不是要解析为整数的格式。看看这个:http://www.codeproject.com/Articles/32885/Difference-Between-Int32-Parse-Convert-ToInt32-and