【问题标题】:C# DataTable.Select() - How do I format the filter criteria?C# DataTable.Select() - 如何格式化过滤条件?
【发布时间】:2009-10-20 22:49:36
【问题描述】:

这不起作用

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

myDataTable 有一个名为已处理的行。我想从该表中选择已处理不等于 True 的行。任何人都可以帮忙吗?

【问题讨论】:

    标签: c# datatable


    【解决方案1】:

    处理的是布尔值还是字符串?

    如果是布尔值,那么“未处理”应该可以工作,否则如果它是字符串“已处理 'True'” - 使用单引号作为 where 字符串中的分隔符。值得在查询数据时检查表/列中的值,以确保您正在针对正确的事物进行测试(这在过去曾困扰过我)。

    【讨论】:

    • 作为参考,这两种可能性中哪一种是正确的?
    • 对于我的回复墨菲的巨大延迟感到抱歉。这是一个经过处理的字符串 'True' 成功了。
    【解决方案2】:

    这应该可以正常工作,但它不会返回 processednull 的行。

    要包含空值,试试这个:

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

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

    有关通用过滤器表达式参考,请参阅the DataColumn.Expression MSDN topic

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-10
      • 1970-01-01
      • 2011-03-04
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 2017-10-12
      相关资源
      最近更新 更多