利用winform设计软件界面时,经常用到combobox控件,但有时需要绑定数据表中的数据,更进一步,需要实现对数据表中数据的模糊查询功能。本文就讲讲述如何用C#实现combobox下拉列表的模糊查询。

  首先,将数据库某数据表中某列数据绑定到combobox。

(1)选定数据表,获取数据

public static DataTable getAllData(string dbName)
{
string sql = @"SELECT * FROM " + dbName;
//sql数据库操作命令
DataTable dt = DBOperSQL.GetDataTable(sql);
return dt;
}

dbName为选定的数据表名称,如何在C#中连接数据库,进行数据操作,在上一篇C#操作access和sql server数据库代码实例中,已经讲述,在此不再赘述。

(2)将某列数据绑定到combobox。

public void cmbDownItem(string dbName,string columnName,ComboBox cmb)
{
DataTable dtCmbCompany = DBOper.getAllData(dbName);
if (dtCmbCompany.Rows.Count > )
{
cmb.DataSource = dtCmbCompany;
cmb.DisplayMember = columnName;
//未起作用
cmb.ItemHeight = ;
cmb.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
cmb.AutoCompleteSource = AutoCompleteSource.ListItems;
}
else
{
MessageBox.Show("数据表为空");
}
}

  dbName为需要绑定的数据表名称,columnName为要绑定的数据表该列的列名,cmb为combobox控件的名称。

  然后,实现模糊查询的功能。获取combobox控件输入的字符串,查找包含该字符串的数据表中绑定列的元素,自动填充到combobox控件的下拉列表项。

  代码实例:

 

/*autoComplete 是实现combobox自动筛选填充的方法,根据cmb输入,筛选出包含改词的items
* 输入 dbName,cmb,txt,column 分别为数据表名,cmb名,cmb内容,和数据表列号(从0开始)
*/
public void autoComplete(string dbName, ComboBox cmb,string txt,int columnNum)
{
DataTable dtCmbCompany = DBOper.getAllData(dbName); //string s = dtCmbCompany.Rows[1][1].ToString();
string s;
//ListAll获得该列所有数据
//ListSelect筛选出符合要求的数据
List<string> ListAll = new List<string>();
List<string> ListSelect = new List<string>(); for(int i = ; i < dtCmbCompany.Rows.Count; i++)
{
s = dtCmbCompany.Rows[i][columnNum].ToString();
ListAll.Add(s);
} //MessageBox.Show(dtCmbCompany.Rows.Count.ToString()); //选择数据
cmb.Items.Clear();
//清空listNew
ListSelect.Clear();
//遍历全部备查数据
foreach (var item in ListAll)
{
if (item.Contains(txt))
{
//符合,插入ListNew
ListSelect.Add(item);
}
} //cmb.DataSource = ListSelect;
cmb.Items.AddRange(ListSelect.ToArray());
// MessageBox.Show(ListSelect[1]);
cmb.SelectionStart = txt.Length;
//Cursor = Cursors.Default;
cmb.DroppedDown = true; }

  上面就是如何使用C#给combobox控件绑定数据表列,并且根据输入字符串实现模糊查询的代码实例。最基础的数据库操作代码,在上一篇文章有已经讲到。

  初学C#,错误之处,还请指教。

  

combobox实现模糊查询自动填充的更多相关文章

  1. easyUI combobox combotree 模糊查询,带上下键选择功能,待完善。。。。

    /2017年4月9日 11:52:36 /** * combobox和combotree模糊查询 * combotree 结果带两级父节点(手动设置数量) * 键盘上下键选择叶子节点 * 键盘回车键设 ...

  2. easyui combobox 左匹配模糊查询

    之前一直不知道,easyui 的combobox还有从左匹配查询显示数据的. 样式是这样的:(这是数据是已经存在下拉列表里的) 在这样操作的时候,遇到了一个问题.(其实也不算问题的). 就是操作人员在 ...

  3. 实现combobox模糊查询的时候报错 InvalidArgument=“0”的值对于“index”无效

    因为要对combobox实现模糊查询,因为系统实现的匹配只能从左到右进行匹配,所以利用两个list来进行模糊匹配,主要代码如下: List<string> listOnit = new L ...

  4. ElementUI Tree控件在懒加载模式下的重新加载和模糊查询

    之所以使用懒加载是为了提高性能,而且只有在懒加载模式下默认会给所有显示节点设置展开按钮.leaf也可以做到,但是要操作数据比较麻烦. 要实现懒加载模式下的模糊查询以及重新加载必须要使用data与laz ...

  5. 模糊查询基于select遍历json文件自动填充的实现

    HTML页面 <tr> <td align="left"><span>案由</span> <input type=" ...

  6. 【EasyUI】combotree和combobox模糊查询

    这里说的模糊查询指在输入框输入,然后自动在下拉框中显示匹配结果,类似Google搜索提示 EasyUI库已经实现了combobox的查询过滤功能,但只能从头匹配,原因是EasyUI库的代码限制: fi ...

  7. winform中ComboBox利用AutoComplete属性实现模糊查询(有缺陷)

    上一篇文章是用ComboBox里面的原生事件实现模糊查询,操作比较灵活一些,但是收到评论说,利用AutoComplete属性就可以实现模糊查询,但是据本人所了解,AutoComplete虽然能够方便的 ...

  8. comboBox绑定数据库、模糊查询

    实现: 一.绑定数据库 点击查询按钮,comboBox显示从数据库查到的某字段的一列数据 方法:在按钮的点击事件绑定数据库 private void button1_Click(object send ...

  9. Winform如何实现ComboBox模糊查询

    最近朋友问了一个关于Winform实现ComboBox模糊查询的知识点,自己好久没有搞Winform了,就上手练了一下,废话不多说,进入正题. 前台设计: 前台就是一个简单的Form窗体+一个Comb ...

随机推荐

  1. 信息中心网络 ,Information-centric networking, ICN

  2. Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复

    Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具. Xtrabackup中主要包含两个工 ...

  3. 【hihoCoder 1454】【hiho挑战赛25】【坑】Rikka with Tree II

    http://hihocoder.com/problemset/problem/1454 调了好长时间,谜之WA... 等我以后学好dp再来看为什么吧,先弃坑(╯‵□′)╯︵┻━┻ #include& ...

  4. Android Hook技术

    原文:http://blog.csdn.net/u011068702/article/details/53208825 附:Android Hook 全面入侵监听器 第一步.先爆项目demo照片,代码 ...

  5. MVC中得到成员元数据的Description特性描述信息公用方法

    #region 从类型成员获取指定的Attribute T特性集合 /// <summary> /// 从类型成员获取指定的Attribute T特性集合 /// </summary ...

  6. QPS 与 TPS 简介

    QPS:Queries Per Second意思是"每秒查询率",是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准. TPS是Tra ...

  7. java语言 打印素数实例

    //根据定义判断素数---循环n-1次,当n很大时循环n次 public static void main(String[] args) {        // TODO Auto-generated ...

  8. 实例1-gettree

    -- zx create PROCEDURE getbomtree @MaterialID INT --参数,父节点的id AS BEGIN -- 如果主BOM禁用,不显示树结构 ) BEGIN RE ...

  9. HDU3394:Railway

    传送门 点双练习. 对于一张图,询问有多少条边不属于任意一个点双和多少条边至少属于两个点双. 显然,一张图里有多少个桥就是第一问的答案. 对于第二问,考虑对于一个点双,如果其中的边数等于点数,那么这个 ...

  10. pandas read table

    http://pandas.pydata.org/pandas-docs/stable/10min.html import pandas as pd res = pd.read_table(" ...