数据网格if/then行计算

本文关键字:then 计算 if 数据网 网格 数据 | 更新日期: 2023-09-27 18:13:32

在c#中,我建立了一个连接到数据网格的数据表,该数据网格有三列:id1, id2和sum。

我想把id1和id2加到列"sum"中,但只有当sum大于x时(x将从textbox1提供)。

我有这段代码,但这默认添加所有列,不允许if/then语句。

        column = new DataColumn();
        column.DataType = Type.GetType("System.Double");
        column.ColumnName = "sum";
        table.Columns.Add(column);
        table.Columns["sum"].Expression = "[id] * [id2]";

我想添加一个foreach (Datarow行在表。行)(),但这不允许我创建if then语句。

数据网格if/then行计算

假设此时有x的值,只需在表达式中执行case语句。

输入-

table.Columns["sum"].Expression = "CASE WHEN [id] * [id2] > " + x + " THEN [id] * [id2] ELSE NULL END ";

顺便说一句,你想要乘积还是和?列名为sum,但得到的是乘积....只是好奇。

如果在查询时没有x,则必须在DataGrid的ItemDataBound事件中执行此操作。将sum列作为模板列,并在事件中计算它的值。