如何使用Datatable的Compute方法在运行时评估布尔表达式?

时间:2016-04-19 07:31:49

标签: c# datatable

如果我这样做

DataTable dt = new DataTable();
 var v = dt.Compute("3 * (2+4)", "");

它工作正常。

但如果我这样做

 var v1 = dt.Compute("true && true && false || false || false || true", "");

在运行时收到错误

语法错误:'&'之前缺少操作数操作

我错过了什么?

2 个答案:

答案 0 :(得分:4)

您必须使用ANDOR

bool b = (bool)dt.Compute("true AND true AND false OR false OR false OR true", "");
  

允许使用布尔ANDORNOT运算符进行连接。您   可以使用括号分组子句和强制优先级。 AND   运算符优先于其他运算符。

您将找到支持的运营商列表here

答案 1 :(得分:1)

你不能像在C#中那样在DataTable中使用bool逻辑。试试这种方式:

72a37ba7-2033-47f4-8e7e-69a207406dfb