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语句。
答案 0 :(得分:0)
假设此时你有x的值,只需在表达式中做一个case语句。
做类似的事情 -
table.Columns["sum"].Expression = "CASE WHEN [id] * [id2] > " + x + " THEN [id] * [id2] ELSE NULL END ";
顺便说一句 - 你想要产品还是总和?该列名为sum,但您正在获得该产品....只是好奇。
如果在查询时没有x,则必须在DataGrid的ItemDataBound事件中执行此操作。将该sum列作为模板列,并在事件中计算它的值。