我已经阅读了很多帖子,但还没有真正找到任何帮助解决这个问题。我想从包含组合框中当前文本的数据库中选择所有单元格。
但是当我以这种方式尝试时,它只允许我一次输入1个字符。
private void GetSource(object sender, EventArgs e)
{
var src = new AutoCompleteStringCollection();
var tmp = _sqlite.GetDataTable("select customer from Machines");
foreach (DataRow r in tmp.Rows)
{
if (r[0].ToString().Contains(CmbCustomer.Text))
src.Add(r[0].ToString());
}
CmbCustomer.AutoCompleteCustomSource = src;
}
有没有办法做到这一点?提前谢谢!
答案 0 :(得分:1)
您应该更改查询以执行LIKE搜索(例如,SELECT Customer FROM Machines WHERE Customer LIKE CmbCustomer.Text +“%”)。这将选择一个较窄的结果集,该结果集匹配您输入的任意数量的字符。
答案 1 :(得分:0)
您应该在选择查询中检查SQLite端的匹配字符串。 “它只允许我一次输入1个字符”太模糊,无法告诉你究竟出了什么问题,但可能需要一些时间来进行搜索。如果是这种情况,您可以尝试仅使用计时器每半秒左右刷新一次自动完成。