我正在尝试为文本框添加自动完成功能,结果来自数据库,格式如下:
[001] 姓, 名 中间名
目前必须输入 [001]... 才能显示条目。 问题是,即使我先输入名字,也希望自动完成可以正常工作。所以,如果有一个条目是
[001] 史密斯, 约翰 D
如果我开始输入"约翰",则此条目应该在自动完成的结果中显示。
目前,代码看起来像这样:
AutoCompleteStringCollection acsc = new AutoCompleteStringCollection();
txtBox1.AutoCompleteCustomSource = acsc;
txtBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
txtBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
....
if (results.Rows.Count > 0)
for (int i = 0; i < results.Rows.Count && i < 10; i++)
{
row = results.Rows[i];
acsc.Add(row["Details"].ToString());
}
}
results是包含查询结果的数据集。
该查询是使用like语句的简单搜索查询。如果不使用自动完成并将结果放入数组中,则返回正确的结果。
有什么建议吗?
编辑:
这是返回结果的查询。
SELECT Name from view_customers where Details LIKE '{0}'
使用 {0} 作为要搜索的字符串的占位符。