c#如何在select语句中指定not?

时间:2012-03-02 17:37:40

标签: c# datatable

我在数据集上使用select方法来检索符合我条件的结果:

foreach (DataRow dr in dsPone2.Tables["tt-pone"].Select(strWhereCondition))
{
    dsPone.Tables["tt-pone"].ImportRow(dr);
}

如何从

更改strWhereCondition
strWhereCondition += " AND poneid = 0 and aoneid = 0 and tranid = 0";

到tranid不是0的地方?

我是否使用<>!=

4 个答案:

答案 0 :(得分:7)

通常情况下,咨询文档是前进的方向。 DataTable.Select(string)重定向到DataColumn.Expression以记录过滤器表达式中允许的内容 - “操作员”列表显示<>但不显示!=

我个人会尝试避免使用基于字符串的过滤并使用LINQ to DataSet,但当然需要.NET 3.5或更高版本。

答案 1 :(得分:2)

您必须使用SQL表示法<>

在您的情况下tranid <> 0

答案 2 :(得分:2)

使用tranid <> 0

表达式的语法是described here

答案 3 :(得分:1)

DataColumn.Expression property的文档详细说明了DataTable.Select methodfilterExpression参数使用的语法。在“操作员”部分,大约有三分之一的页面显示...

  

允许使用布尔AND,OR和NOT运算符进行连接。

...还列出了<>比较运算符。因此,这应该意味着您可以执行tranid <> 0NOT (tranid = 0)