DataGridView和DataTable的使用
来源:互联网 发布:cisco 端口隔离 编辑:程序博客网 时间:2024/04/30 09:15
我们在实际编程中,经常会用到DataGridView来显示数据,而且可以通过过滤的方式查找需要的数据。这篇文章主要是讲显示数据的,然后通过过滤的方式查看你想要的内容。我的思路是设置字段来初始化DataTable,并且将DataTable的DefaultView绑定到DataGridView,将数据赋值到DataTable,在文本框输入内容,使用DataTable的RowFilter进行过滤数据,查找您需要的数据。我写这篇文章主要就是想分享我自己的使用datatable的困惑而已。我的使用很简单,只要将DataTable的数据显示到DataGridView中,并且可以通过文本框进行过滤数据。
首先,分享一下我的界面,文本框用来输入查找信息,DataGridView用来显示数据,并且随着文本框录入的内容而变化,如下图所示:
其次,我主要讲一下代码实现
(1)初始化DataTable,并将datatable绑定到DataGridView的数据源
private DataTable dt = new DataTable(); private void InitDatable() { //新建列 DataColumn col1 = new DataColumn("姓名", typeof(string)); DataColumn col2 = new DataColumn("性别", typeof(string)); DataColumn col3 = new DataColumn("出生日期", typeof(string)); DataColumn col4 = new DataColumn("身份证号码", typeof(string)); DataColumn col5 = new DataColumn("出生地址", typeof(string)); DataColumn col6 = new DataColumn("户籍地址", typeof(string)); DataColumn col7 = new DataColumn("实际居住地址", typeof(string)); DataColumn col8 = new DataColumn("ID", typeof(string)); //添加列 dt.Columns.Add(col1); dt.Columns.Add(col2); dt.Columns.Add(col3); dt.Columns.Add(col4); dt.Columns.Add(col5); dt.Columns.Add(col6); dt.Columns.Add(col7); dt.Columns.Add(col8); this.dataGridView1.DataSource = dt.DefaultView; }
(2)DataTable增加数据,先请空行的信息
dt.Rows.Clear();//清空数据 foreach (HumanInfo hi in list) { DataRow dr = dt.NewRow();//新增行 dr[0] = hi.Name; dr[1] = hi.Sex; dr[2] = hi.Date_of_birth.ToString("yyyy-MM-dd"); dr[3] = hi.Id_no; dr[4] = hi.Birth_place2; dr[5] = hi.Mailing_address2; dr[6] = hi.Mailing_address4; dr[7] = hi.Patient_id; this.dt.Rows.Add(dr);//增加行 }
(3)过滤,这个主要是使用TextBox的TextChanged事件,“this.dt.DefaultView.RowFilter = filterStr;”这个语句就是将过滤的字符串赋值给datatable,如下代码所示:
private void txtFilter_TextChanged(object sender, EventArgs e) { string filter = "%"+ txtFilter.Text +"%"; Filter(filter); } /// <summary> /// 过滤 /// </summary> /// <param name="queryInfo"></param> private void Filter(string queryInfo) { string filterStr = "姓名 like '{0}' or 性别 like '{0}' or 出生日期 like '{0}' or 出生地址 like '{0}' or 户籍地址 like '{0}' or 身份证号码 like '{0}' or 实际居住地址 like '{0}' or ID like '{0}'"; if (string.IsNullOrEmpty(queryInfo)) { filterStr = " 1=1 "; } else { filterStr = string.Format(filterStr, queryInfo); } this.dt.DefaultView.RowFilter = filterStr; }
这三个功能好好利用就可以实现我们提出的问题了。
0 1
- DataGridView和DataTable的使用
- 对dataGridView和DataTable使用DataView进行多次查询
- datatable和datagridview传数据
- C#DataTable和dataGridView控件
- C#中 dataGridView和DataTable 导出Excel的方法
- DataTable和DataSet的使用
- Datatable和DataRow的使用
- 关于datagridview和datatable及处理
- 求datatable(datagridview)整列和
- DataSet、DataTable和DataGridView知识备忘
- DataSet、DataTable和DataGridView知识备忘
- DataSet、DataTable和DataGridView知识备忘
- DataGridView绑定 DataTable 编辑的问题
- C#dataGridView的数据全部放到DataTable
- C#dataGridView的数据全部放到DataTable
- C#控件DataGridView的DataSource属性设为DataView和DataTable的区别
- 在Datatable,DataView和DataGridView中不显示重复的记录
- 数据读取器和DataGridView控件的使用
- libevent源代码分析-介绍、安装、使用
- 数据结构 字符串二分查找正确实现
- bzoj 1047
- 避免进度调整失误
- 核电站
- DataGridView和DataTable的使用
- [机器学习]逻辑回归,Logistic regression |分类,Classification
- 装饰者模式
- 开发杂记
- HDU - 4081 Qin Shi Huang's National Road System(次小生成树)
- APP的HTML5页面经过运营商网络被植入手机管家问题及分析,解决方案见新文章
- 使用11g DNFS建立基于DNFS的tablespace
- JStorm中的并行( parallelismction )介绍
- 疯狂java——面向对象