0

我有以下代码来对 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 值输出到控制台窗口,但没有出现任何内容。我该如何解决这个问题?

4

1 回答 1

0

试试这个:

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

爆炸的原因很可能是因为您DbNull.Value从数据库中获取了 a ,这导致了Convert.ToDecimal爆炸,因为它不知道如何转换""为数字。

更新:

这肯定会奏效:

decimal temp = 0M;
decimal.TryParse(DataBinder.Eval(e.Row.DataItem, "CTDActual").ToString(), out temp);
cell1+=temp;
于 2013-07-19T20:12:57.380 回答