在用.Net开发做Winform程序的时候,显示数据信息,无疑Datagridview是最方便的,
但在使用的时候还是有一些经验需要总结的,希望本文能帮助大家少走一些弯路。
1. DataSource选择问题
2.数据清空的问题
3.DatagridView列属性绑定的问题
1)首先说一说DataSource的选择,一般可以选择DataTable或者List进行绑定,这两个都没有问题。
区别:DataTable绑定Datagridview列名的时候是绑定的table的列名称,
而List需要是一个对象的列表如List<Dog>,绑定Datagridview列名对应的是Dog的属性名称。
注意:应该是区分大小写的。
2)再来说说数据清空的问题,这个问题刚开始学习使用这个控件的时候是最容易犯的问题,第一次绑定没有问题,第二次刷新的时候,数据没有清空,两次的数据都显示到了GridView中,这显然是不对的。
当然,解决办法还是很多的,我只说一种VS2015中使用的方法,我记得之前老版本是另外的方法。
直接上代码:
//清空数据
this.dgvHistory.DataSource = null;
//重新绑定数据
this.dgvHistory.DataSource = list;
这样就解决了数据清空的问题,还是挺简单的吧!
3)最后是数据列名称绑定的问题,
常见的问题就是,绑定属性时候大小写问题,这个仔细一点儿就能规避,仔细耐心,不也是程序员的基本素养嘛!
另外一个最重要的就是如上图我明明绑定的数据列,第一次查询结果也能正常显示,但是再次查询却不对了?
列名称显示成了属性的字符串,如下图所示:
我设置的列名不见了????
为什么?那是因为这些在第二次绑定数据的时候自动生成了这些列名,我记得VS2010之前好像是DataGridView属性框里有一项是设置是否允许自动生成列的,设置成False即可解决这个问题,但是VS2015(更新的不知道解决了这个问题没有)没有这个选项,那怎么办?
程序员还得靠代码:
//禁止自动生成列
this.dgvHistory.AutoGenerateColumns = false;
在Form初始化的时候加上这一句,你的Datagridview 就不会出现上图那样的问题了,来看看正常的显示吧
这样看着是不是更舒服,毕竟这才是我想要的。