【问题标题】:Delphi - How to filter a ADOTable for strings that contain a substringDelphi - 如何过滤包含子字符串的字符串的 ADOTable
【发布时间】:2020-10-10 23:25:03
【问题描述】:

这里是菜鸟。这个问题再次说明了一切,:)。

我有一个连接到 dbgrid 和 .mdb 文件的 ADOTable。我想为包含另一个子字符串的字符串的所有实例过滤我的表字段“OwnerName”,并将它们显示在 dbGrid 上。每条记录都有这个字符串字段“OwnerName”。我该怎么做?

例如: 子字符串:'J' 弦乐:'Jannie'、Johanna、Ko-Ja 等。

如果可能的话,我还希望能够过滤不仅以该确切 wubstring 开头的字符串,而且稍后也包含它,就像我的愚蠢示例:Ko-Ja。

问候!!!

【问题讨论】:

  • 尝试使用 LIKE 关键字在 SQL 语句中使用 WHERE 子句。类似于:SELECT * FROM MyTable WHERE (OwnerName LIKE "%J%") 或 (OwnerName LIKE "Fred%")。当然,您可以将许多布尔表达式与和/或运算符(和其他)结合使用。
  • @fpiette Thx 提供建议,但我不允许使用 SQL,它用于学校 PAT。我想知道是否有人可以帮助我理解 .filter 方法

标签: delphi


【解决方案1】:

您只需设置两个属性:Filter 和 Filtered。第一个设置过滤条件(类似于 SQL),第二个是一个布尔值,说明是否应用过滤器。

例子:

YourADOTable.Filter := 'OwnerName LIKE ''%J%''';
YourADOTable.Filtered := True;

“%J%”中的 %s 表示“任何东西”。因此,这样您就可以过滤 OwnerName 中包含文本“任何东西后跟一个 J,然后再出现任何东西”的记录。

应用过滤器后,dbGrid 会自动更新。

您可以在以下位置找到有关过滤字符串的更多信息: http://docwiki.embarcadero.com/Libraries/Sydney/en/Data.DB.TDataSet.Filter

【讨论】:

    猜你喜欢
    • 2022-12-05
    • 2012-03-07
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多