【问题标题】:Search in DatagridView在 DatagridView 中搜索
【发布时间】:2011-12-01 13:18:14
【问题描述】:

我有一个数据库 (DB),其中有一个表“产品”。一个用户可以在其中存储。假设不同的用户将数据存储为“DELL”、“Dell”、“D-E-L-L”、“D E L L”,并且在许多方面与它相似。我在 Datagridview 中有所有这些数据。现在我想在 Datagridview 中进行 Like 搜索。如何通过显示“戴尔”的所有记录来实现。任何帮助将不胜感激。 谢谢。 我正在使用 Winforms,C# 4.0。

【问题讨论】:

  • 这是什么应用程序?它可能会对您应该使用的方法产生影响。
  • winforms(会查看标签)
  • 我的意思是它的用途。它是一个数据输入应用程序吗?交易应用程序?临时查询工具?等等……
  • 这是什么类型的数据库?

标签: c# winforms search datagridview


【解决方案1】:

如果这是一个用于跟踪产品的应用程序并且您可以控制它,那么您可能希望开始规范您的制造公司列表(您提到数据是“戴尔”,所以我假设您没有引用产品名称列)。创建一个“公司”表,并将制造商列(如果是这样的话)替换为引用公司表的 companyId。这样,您可以根据显示所有公司名称的下拉列表构建搜索(或者他们可以在其中键入 LIKE 搜索名称,但至少结果将基于标准化 - ish 列表)。

或者,您将需要管理您的数据,并且必须有人负责在编辑控件中对数据进行排序,以将所有“DELL”、“DELL”和“Dell”替换为“Dell” .

如果您的名字仍然相近(但距离不够近,无法使用 LIKE 搜索),您可以使用 soundex 搜索来获得类似的结果。

谷歌搜索使用 LIKE 样式查询的原因是因为它们使用启发式和算法来分析关系并预测您想要什么。一个简单的 LIKE 查询不会分析相似性模式。 Soundex 搜索很接近,但可能仍然不是您想要的。

【讨论】:

  • 我还建议在将列值与 LIKE 语句进行比较之前修剪列值,并删除/忽略非字母数字字符(除非它们对该数据字段有意义)。
  • 我明白你想说什么,但我想在没有 ID 的情况下搜索它。我真的不知道,但是临时数据库是否与此有关??
  • 临时数据库与我提到的任何事情无关。
  • 不是你提到的,我在问我的问题。对不起,我的混乱评论
  • 可能有一种方法可以使用临时数据库或临时表来解决这个问题,但我想不出任何我会建议的方法。可能使用需要预加载临时数据库的纯文本搜索引擎库...
猜你喜欢
  • 2023-03-14
  • 2011-09-06
  • 2014-11-11
  • 1970-01-01
  • 1970-01-01
  • 2010-11-09
  • 1970-01-01
  • 1970-01-01
  • 2012-03-23
相关资源
最近更新 更多