【发布时间】:2009-10-20 22:49:36
【问题描述】:
这不起作用
DataRow[] mySelectedRows = myDataTable.Select("processed <> True");
myDataTable 有一个名为已处理的行。我想从该表中选择已处理不等于 True 的行。任何人都可以帮忙吗?
【问题讨论】:
这不起作用
DataRow[] mySelectedRows = myDataTable.Select("processed <> True");
myDataTable 有一个名为已处理的行。我想从该表中选择已处理不等于 True 的行。任何人都可以帮忙吗?
【问题讨论】:
处理的是布尔值还是字符串?
如果是布尔值,那么“未处理”应该可以工作,否则如果它是字符串“已处理 'True'” - 使用单引号作为 where 字符串中的分隔符。值得在查询数据时检查表/列中的值,以确保您正在针对正确的事物进行测试(这在过去曾困扰过我)。
【讨论】:
这应该可以正常工作,但它不会返回 processed 是 null 的行。
要包含空值,试试这个:
DataRow[] rows = myDataTable.Select("isnull(processed, false) <> true");
SQL null 是一个不确定的值。它不等于布尔值true,但也不不等于 true。 (见Null (SQL)。)
有关通用过滤器表达式参考,请参阅the DataColumn.Expression MSDN topic。
【讨论】: