1

我想从具有特殊字符的 ms 访问表中搜索数据(以下是示例):

CCTM-2PM/PA/14-4-1-F-SC、CCTM-2PM/PA/18-4-5-F-SC、CCTM-2PM/PA/33-20-4-F-SC、CCTM- 2PM/PA/36-20-6-F-SC、CCTM-2PM/PS/22-10-1-F-SC、CCTM-2PM/PS/22-4-3-F-SC、CCTM-2PM/ PS/33-20-4-F-SC(L)、CCTM-2PM/PS/33-7-9-F-SC、CCTM-2PM/R-22-4-3-M-SC

键入时,最接近的匹配结果应显示在 datagrid/combobox 中。

有没有办法做到这一点?

4

1 回答 1

1

这可能不是最干净的解决方案,但您可以使用该字段的所有可能值填充 IEnumerable 对象类型(我们称之为values),然后使用 LINQ 查询该对象:

var matchesBefore = (from v in values 
    where v < txtSerach.Text 
    order by v descending
    select v).Take(5); 
var matchesAfter = (from v in values 
    where v > txtSerach.Text 
    order by v ascending 
    select v).Take(5); 

这将收集 10 个值(在 txtSearch 文本框中键入的文本之前有 5 个,之后有 5 个)。然后可以用这些值填充数据网格。

于 2012-11-04T20:27:47.717 回答