更改数据表表达式列的值

本文关键字:表达式 数据表 | 更新日期: 2023-09-27 18:32:50

我需要将数据表中列的值设置为数据表中其他两列的总和。我尝试了表达式列,工作正常.但问题是表达式列的值并不总是更新。假设 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;

更改数据表表达式列的值

这是一个

有根据的猜测,没有看到你的代码,但似乎如果你使用的是计算,那么你很可能不应该为此使用表达式列,而应该使用数据列......取自这里

"如果必须对两个或多个列执行操作,则应创建一个 DataColumn,将其 Expression 属性设置为适当的表达式,并对生成的列使用聚合表达式。在这种情况下,给定一个名为"total"的数据列,并且表达式属性设置为以下内容:"数量 * 单价"

应该是这样的:

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;