在asp.net gridview中求和值时出错

时间:2013-07-19 19:55:03

标签: c# asp.net gridview

我有以下代码来对gridview中的值求和,但是我在行

收到错误“输入字符串格式不正确”
cell1 += Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, "CTDActual"));

这是完整的代码段:

decimal cell1 = 0;

protected void linqGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        cell1 += Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, "CTDActual"));
    }
    if (e.Row.RowType == DataControlRowType.Footer)
    {
        e.Row.Cells[3].Text = cell1.ToString("C");
    }
}

我尝试将DataItem值输出到控制台窗口,但没有显示任何内容。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

试试这个:

cell1 += Convert.ToDecimal((DataBinder.Eval(e.Row.DataItem, "CTDActual").ToString()==""?"0":DataBinder.Eval(e.Row.DataItem, "CTDActual")));

原因很可能是因为你从数据库中获得DbNull.Value,这导致Convert.ToDecimal爆炸,因为它不知道如何转换""一个数字。

<强>更新

这肯定有用:

decimal temp = 0M;
decimal.TryParse(DataBinder.Eval(e.Row.DataItem, "CTDActual").ToString(), out temp);
cell1+=temp;