当前位置:  开发笔记 > 编程语言 > 正文

C#DataTable.Select() - 如何格式化过滤条件?

如何解决《C#DataTable.Select()-如何格式化过滤条件?》经验,为你挑选了2个好方法。

这不起作用

DataRow[] mySelectedRows = myDataTable.Select("processed <> True");

myDataTable有一行名为processed.我想从这个表中选择处理不等于True的行.有人可以帮忙吗?



1> Murph..:

是处理bool还是字符串?

如果一个bool然后"未处理"应该工作,否则如果它的字符串"processed <>'True'" - 使用单引号作为where字符串中的分隔符.值得检查表格/列中您查询数据时的值,以确保您正在测试正确的事情(这在过去一直困扰着我).


作为参考,两个可能中的哪一个是正确的?

2> Jeff Sternal..:

这应该只是正常工作,但它不会返回的行processednull.

要包含空值,请尝试以下操作:

DataRow[] rows = myDataTable.Select("isnull(processed, false) <> true"); 

SQL null是一个不确定的值.它不等于布尔值true,但它也不等于 true.(参见Null(SQL).)

对于一般的过滤器表达式参考,见的DataColumn.ExpressionMSDN主题.

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有