combobox实现模糊查询自动填充
利用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实现模糊查询自动填充的更多相关文章
- easyUI combobox combotree 模糊查询,带上下键选择功能,待完善。。。。
/2017年4月9日 11:52:36 /** * combobox和combotree模糊查询 * combotree 结果带两级父节点(手动设置数量) * 键盘上下键选择叶子节点 * 键盘回车键设 ...
- easyui combobox 左匹配模糊查询
之前一直不知道,easyui 的combobox还有从左匹配查询显示数据的. 样式是这样的:(这是数据是已经存在下拉列表里的) 在这样操作的时候,遇到了一个问题.(其实也不算问题的). 就是操作人员在 ...
- 实现combobox模糊查询的时候报错 InvalidArgument=“0”的值对于“index”无效
因为要对combobox实现模糊查询,因为系统实现的匹配只能从左到右进行匹配,所以利用两个list来进行模糊匹配,主要代码如下: List<string> listOnit = new L ...
- ElementUI Tree控件在懒加载模式下的重新加载和模糊查询
之所以使用懒加载是为了提高性能,而且只有在懒加载模式下默认会给所有显示节点设置展开按钮.leaf也可以做到,但是要操作数据比较麻烦. 要实现懒加载模式下的模糊查询以及重新加载必须要使用data与laz ...
- 模糊查询基于select遍历json文件自动填充的实现
HTML页面 <tr> <td align="left"><span>案由</span> <input type=" ...
- 【EasyUI】combotree和combobox模糊查询
这里说的模糊查询指在输入框输入,然后自动在下拉框中显示匹配结果,类似Google搜索提示 EasyUI库已经实现了combobox的查询过滤功能,但只能从头匹配,原因是EasyUI库的代码限制: fi ...
- winform中ComboBox利用AutoComplete属性实现模糊查询(有缺陷)
上一篇文章是用ComboBox里面的原生事件实现模糊查询,操作比较灵活一些,但是收到评论说,利用AutoComplete属性就可以实现模糊查询,但是据本人所了解,AutoComplete虽然能够方便的 ...
- comboBox绑定数据库、模糊查询
实现: 一.绑定数据库 点击查询按钮,comboBox显示从数据库查到的某字段的一列数据 方法:在按钮的点击事件绑定数据库 private void button1_Click(object send ...
- Winform如何实现ComboBox模糊查询
最近朋友问了一个关于Winform实现ComboBox模糊查询的知识点,自己好久没有搞Winform了,就上手练了一下,废话不多说,进入正题. 前台设计: 前台就是一个简单的Form窗体+一个Comb ...
随机推荐
- 【机器学习Machine Learning】资料大全
昨天总结了深度学习的资料,今天把机器学习的资料也总结一下(友情提示:有些网站需要"科学上网"^_^) 推荐几本好书: 1.Pattern Recognition and Machi ...
- Doc
一:window: 属性(值或者子对象):opener:打开当前窗口的源窗口,如果当前窗口是首次启动浏览器打开的,则opener是null,可以利用这个属性来关闭源窗口. 方法(函数):事件(事先设置 ...
- 【Mysql】 局域网远程连接问题
设置了 user 表 的 host为‘%’ 为什么局域网还是连接不上: 新建查询-->分别执行 1.GRANT ALL PRIVILEGES ON *.* TO'root'@'%' IDENTI ...
- 【转】fatal error C1900: “P1”(第“20081201”版)和“P2”(第“20080116”版)之间 Il 不匹配
转自:这里(然而这里并没有写原出处) 背景:今天傻逼逼地想用vs2010来编译一个vs2013的项目,其中这个项目用到了一个库(应该是用2013编译的) 在我浅薄的认知中,以为只是13支持的特性更多, ...
- MSSQL的表锁
DECLARE @PlanId INT; BEGIN TRAN; INSERT INTO TbName(col,col2) VALUES ('sss','2016/11/8 18:25:12'); S ...
- Mysql触发器
触发器(trigger)作用:监视某种情况,并触发某种操作. 触发器创建语法四要素: 1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/b ...
- MVC 总结
以下内容摘自 PHP for Absolute Beginners, Thomas Blom Hansen & Jason Lengstorf The model-view-controlle ...
- 火车头采集ecshop 文章接口文件
<?php header("Content-Type:text/html;charset=utf-8"); $host = $_SERVER['HTTP_HOST']; // ...
- 一道javascript数组操作题
题目如下: var arr = ['100px','abc'-6,[],-98765,34,-2,0,'300',,function(){alert(1);}, null, document, [], ...
- Navicat Premium 的常用功能
1.快捷键 1.1. F8 快速回到当前对象列表 1.2. Ctrl + q 打开查询界面 1.3. Ctrl + d 快速修改当前的表结构 1.4. Ctrl + r 运行当前查询界面里面的 sql ...