在asp.net网格视图中求和值时出错

本文关键字:求和 出错 视图 asp net 网格 | 更新日期: 2023-09-27 18:23:55

我有下面的代码来汇总网格视图中的值,但我在行收到错误"输入字符串格式不正确"

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值输出到控制台窗口,但没有显示任何内容。如何解决此问题?

在asp.net网格视图中求和值时出错

试试这个:

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;