【发布时间】:2016-02-14 20:06:44
【问题描述】:
我有一个带有文本框的 c# winform,通过实体框架连接到一个名为 Candidates 的表(它有 700 条记录)。
我正在使用一个名为 candidatesBindingSource 的 BindingSource。一切都按我的意愿工作。
只有一件事。我正在尝试使用姓氏搜索候选人。所以我有一个名为 textSurname 的文本框和一个带有此代码的按钮 用于搜索我的记录:
var searchResults = (from a in _context.Candidates where (a.Surname.Contains(textSurname.Text)) select a.Id).ToList();
if (searchResults.Count > 0)
{
// Id of a record in searchResults is correct
var position = searchResults[0];
// This line moves focus to a wrong record
candidatesBindingSource.Position = position; //
}
如果找到一条记录,我可以得到它的 ID。在这里我有一个问题。如何将我的 candidatesBindingSource 重新定位到
使用我的搜索结果中的 ID 记录?例如,如果我有一个 Id = 2638,上面的代码重新定位我的candidatesBindingSource
到最后一条记录。我怀疑这部分 candidatesBindingSource.Position 实际上作为记录计数(我的表中为 700)
并且无法前往记录号。 2638(不使用此 ID 的记录)。我对吗?那么如何使用找到的 Id 实现 GOTO 记录?
我真的必须使用带有MoveNext 命令的For 循环来比较我搜索到的ID 和所有ID 吗?
任何提示将不胜感激。
【问题讨论】:
-
你在
candidatesBindingSource.DataSource里放了什么? -
这一行是我的Bindingsource:
candidatesBindingSource.DataSource = _context.Candidates.ToList();
标签: c# winforms entity-framework search full-text-search