如何选择数据表中不等于某项的所有内容?

G. *_* LC 2 c# datatable select

我有一个包含几列的数据表。其中一列具有特定值,我想用它来告诉程序要么给我该行,要么告诉它我不想要该行。

我的具体情况是该列名为“状态”,并且某些内容已批准。因此,如果“状态”列中的值不是“已批准”,我想要它,请不要打扰我。

在这种情况下(但相反)我通常做的只是使用类似的东西:

myDataTable.Select("Status = 'APPROVED'");
Run Code Online (Sandbox Code Playgroud)

给我所有批准的东西。但如果我尝试用我的直觉写

myDataTable.Select("Status != 'APPROVED'");
Run Code Online (Sandbox Code Playgroud)

我明白了

Exception thrown: 'System.Data.SyntaxErrorException' in System.Data.dll
Run Code Online (Sandbox Code Playgroud)

注意:从我的调试尝试来看,唯一给我带来问题的是 != 运算符。我用 try / catch 包装该语句,异常如下:

Cannot interpret token '!' at position 8.
Run Code Online (Sandbox Code Playgroud)

所以使用该输出我找到了这个链接。但这似乎对我没有多大帮助,按照他们的建议进行尝试(我的绝望尝试):

myDataTable.Select("Status '!'= 'APPROVED'");
Run Code Online (Sandbox Code Playgroud)

或者

myDataTable.Select("Status '!=' 'APPROVED'");
Run Code Online (Sandbox Code Playgroud)

首先对我来说根本没有意义,更重要的是不起作用,这对我来说似乎是显而易见的。

Mag*_*ron 6

只需使用<>

myDataTable.Select("Status <> 'APPROVED'");
Run Code Online (Sandbox Code Playgroud)

  • 这可能会有所帮助(DataTable.Select 的文档):https://msdn.microsoft.com/en-us/library/det4aw50%28v=vs.110%29.aspx?f=255&amp;MSPPError=-2147217396 那里有一个链接如何使用过滤表达式:http://www.csharp-examples.net/dataview-rowfilter/ (2认同)