Datagrid if / then行计算

时间:2011-11-02 14:33:53

标签: c# .net datagridview datatable

In,C#I构建了一个连接到datagrid的数据表,该数据表有三列: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(table.Rows中的Datarow行)(),但这不允许我创建if then语句。

1 个答案:

答案 0 :(得分:0)

假设此时你有x的值,只需在表达式中做一个case语句。

做类似的事情 -

table.Columns["sum"].Expression = "CASE WHEN [id] * [id2] > " + x + " THEN [id] * [id2] ELSE NULL END ";
顺便说一句 - 你想要产品还是总和?该列名为sum,但您正在获得该产品....只是好奇。

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