我需要在数据表中将列的值设置为datatable中的其他两列的总和。我尝试过表达式列并且工作正常。但问题是表达式列的值不会始终更新。假设A,B是数据表中的两列,这两列的总和应该显示在列'C'中。当B的值改变时然后列'C'的值也会改变。但是当'A'列改变时
DataTable dt1 = new DataTable();
dt1.Columns.Add("A", typeof(decimal));
dt1.Columns.Add("B", typeof(decimal));
dt1.Columns.Add("C", typeof(decimal), "A+B");
myGridView.Datasource = dt1;
答案 0 :(得分:1)
这是一个有根据的猜测,但没有看到你的代码,但似乎你使用Compute然后你很可能不应该使用表达式列,而不是你应该使用DataColumn ...来自{ {3}}
"如果必须对两列或更多列执行操作,则应创建DataColumn,将其Expression属性设置为适当的表达式,并在结果列上使用聚合表达式。在这种情况下,给定一个名为" total"的DataColumn,并将Expression属性设置为:" Quantity * UnitPrice"
答案 1 :(得分:0)
应该是这样的:
DataTable dt1 = new DataTable();
dt1.Columns.Add("A", typeof(decimal));
dt1.Columns.Add("B", typeof(decimal));
dt1.Columns.Add("C", typeof(decimal));
foreach (DataRow dr in dt1.Rows)
{
dr[2] = Convert.ToDecimal(dr[0]) + Convert.ToDecimal(dr[1]);
}
myGridView.Datasource = dt1;