如何使用c#在数据表中使用case编写select

时间:2018-04-04 06:41:18

标签: c# asp.net sql-server

我正在尝试使用某些条件过滤数据表中的数据,但条件是使用大小写条件,如下所示

DataTable dt = (DataTable)ViewState["FilteredData"];

string expression = string.Format("MAKER_BY = CASE WHEN '" + MakerBy.Trim() + "'='A' THEN MAKER_BY ELSE '"+ MakerBy.Trim() + "' END");

dt = dt.Select(expression).CopyToDataTable();

当执行上面的代码时,我收到错误说,'WHEN'运算符后缺少操作数。 任何帮助将不胜感激。 谢谢。

1 个答案:

答案 0 :(得分:4)

过滤器表达式不支持 cordova-plugin-camera@2.4.1 cordova-plugin-device@1.1.6 但是,他们支持CASE

有关详细信息,请阅读相关的Microsoft文档页面:DataColumn.Expression Property

所以你可以这样做:

IIF

然而,有一种更简单的方法:

string expression = string.Format("MAKER_BY = IIF('" + MakerBy.Trim() + "'='A', MAKER_BY, '"+ MakerBy.Trim() + "')");