我正在使用C#.net Windows窗体,我需要创建一个搜索文本框,它将显示组合框值(类似于谷歌搜索); 组合框中显示的值将是SQL 2005数据库中的值(用户在FirstName上搜索的示例,组合框将显示所有名字,当用户键入更多字母时,将对其进行过滤....如果用户正在搜索LastName,组合框显示数据库中的所有LastName值。等等)
有关如何完成此任务的任何想法?
答案 0 :(得分:1)
这是一个来自网络的解决方案,可以做你想做的事情,但是从一开始就加载一切而不是做小的查询会产生负面影响。
List<string> namesCollection = new List<string>();
SqlConnection conn = new SqlConnection();
conn.ConnectionString = 'Connexion String or From File'
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select distinct [Name] from [Names] order by [Name] asc";
conn.Open();
SqlDataReader dReader = cmd.ExecuteReader();
if (dReader.HasRows == true)
{
while (dReader.Read())
namesCollection.Add(dReader["Name"].ToString());
}
dReader.Close();
txtName.AutoCompleteMode = AutoCompleteMode.Suggest;
txtName.AutoCompleteSource = AutoCompleteSource.CustomSource;
txtName.AutoCompleteCustomSource = namesCollection;
答案 1 :(得分:0)
您应该将AutoCompleteSource
属性设置为CustomSource
,然后将AutoCompleteCustomSource
属性设置为数据库中的字符串集合。