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