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