对dataGridView和DataTable使用DataView进行多次查询
来源:互联网 发布:淘宝店办理营业执照 编辑:程序博客网 时间:2024/05/17 09:23
参考自:http://www.cnblogs.com/Spirithero/archive/2011/07/20/2111351.html
重点在于DataView是DateTable相关联的一个视图而已,无论你如何使用RowFilter,DataView虽然被改变,但DateTable数据不会减少,所以你不要幻想连续使用多个RowFilter 来得到叠加过滤的效果,一个DataView只支持一个RowFilter,你只能使用 not ,and 来连接多个过滤条件。
DataTable dt = DataView.ToTable(); //获取过滤结果表格DataTable dt = DataView.Table; //获取的是原来构造DataView的那个原表(没有过滤之前的那个表)。
但是可以通过保留上次查询过滤的结果表格,下次查询时,以保留的表格为查询对象,可以实现多次过滤查询。
控件截图:
全局变量:
DataTable pTable; //原始结果表格 DataTable multQueryTable; //多次查询结果表格
主要代码:
//查询 private void btnFilter_Click(object sender, EventArgs e) { string strField = comBField.Text.ToString(); //查询字段 string strSymbol = comBsymbol.SelectedItem.ToString(); //查询符号 string strTarget = textFind.Text; //查询对象 if (string.IsNullOrEmpty(strField) || string.IsNullOrEmpty(strTarget)||string.IsNullOrEmpty(strSymbol)) //判断查询语句是否满足条件 { MessageBox.Show("查询内容不能为空!"); return; } DataTable sqlTable = pTable.Copy(); //原始结果表格复制给查询表格,以保留原始结果 DataView curDV; if (checkMultQuery.Checked == true && multQueryTable !=null ) //判断是否多次查询 { curDV = multQueryTable.DefaultView; //获取多次查询表格的视图 } else { curDV = sqlTable.DefaultView; //获取原始表格的自定义视图 } string strSQL; //查询语句 if (strSymbol == "LIKE") //模糊查询 { strSQL = strField + " LIKE '%" + strTarget + "%'"; } else { strSQL = strField + " " + strSymbol + " " + strTarget; //条件查询 } curDV.RowFilter = strSQL; //筛选满足条件的行数据 dataGridView.DataSource = curDV; //绑定查询结果到数据视图 multQueryTable = curDV.ToTable(); //获取查询过滤结果的表格 }
重置,即显示原始表格:
//重置 private void btnReset_Click(object sender, EventArgs e) { if (pTable!= null) //如果原始表格非空 { dataGridView.DataSource = pTable; //绑定原始结果表格 } }
阅读全文
0 0
- 对dataGridView和DataTable使用DataView进行多次查询
- 利用dataview对datagridview进行数据绑定
- DataGridView,DataTable,DataView知识总结
- 对DataTable进行过滤筛选的一些方法Select,dataview
- DataGridView和DataTable的使用
- VB.net 使用LINQ对datatable对象进行查询
- C#控件DataGridView的DataSource属性设为DataView和DataTable的区别
- 在Datatable,DataView和DataGridView中不显示重复的记录
- 用Linq和Dataview筛选查询DataTable数据,DataTable和List相互转换
- 对DataTable数据进行查询过滤
- 使用 DataView 对数据排序和筛选
- DataTable,DataView和DataGrid比较
- DataTable,DataView和DataGrid比较
- DataTable,DataView和DataGrid比较
- DataTable 和 DataView 的理解
- DataTable 和 DataView 的理解
- 用linq对datatable进行分组查询并返回datatable
- 用DataTable创建DataView 用LINQ查询创建DataView
- python 数据处理
- EXCEL导出—JXL
- D
- 剑指offer-对称的二叉树
- Java中的堆和栈的区别
- 对dataGridView和DataTable使用DataView进行多次查询
- nyoj 题目1036 非洲小孩 贪心算法
- 《Android开发艺术探索》读书笔记-第二章 IPC机制(未啃透)
- JavaScript-运算符(%)隔行变色
- 训练总结 8.1
- 【洛谷】3796 【模板】AC自动机(加强版)
- Log4j和Log4j2的区别
- 8-1
- 2017 多校训练第三场 HDU 6060 RXD and dividing