C# DataGridView数据绑定的问题 (绑定数据经验分享)

在用.Net开发做Winform程序的时候,显示数据信息,无疑Datagridview是最方便的,

但在使用的时候还是有一些经验需要总结的,希望本文能帮助大家少走一些弯路。

1. DataSource选择问题

2.数据清空的问题

3.DatagridView列属性绑定的问题

 

1)首先说一说DataSource的选择,一般可以选择DataTable或者List进行绑定,这两个都没有问题。

区别:DataTable绑定Datagridview列名的时候是绑定的table的列名称,

           而List需要是一个对象的列表如List,绑定Datagridview列名对应的是Dog的属性名称。

注意:应该是区分大小写的。

2)再来说说数据清空的问题,这个问题刚开始学习使用这个控件的时候是最容易犯的问题,第一次绑定没有问题,第二次刷新的时候,数据没有清空,两次的数据都显示到了GridView中,这显然是不对的。

当然,解决办法还是很多的,我只说一种VS2015中使用的方法,我记得之前老版本是另外的方法。

直接上代码:

//清空数据
this.dgvHistory.DataSource = null;
//重新绑定数据          
this.dgvHistory.DataSource = list;

这样就解决了数据清空的问题,还是挺简单的吧!

3)最后是数据列名称绑定的问题,

C# DataGridView数据绑定的问题 (绑定数据经验分享)_第1张图片

常见的问题就是,绑定属性时候大小写问题,这个仔细一点儿就能规避,仔细耐心,不也是程序员的基本素养嘛!

另外一个最重要的就是如上图我明明绑定的数据列,第一次查询结果也能正常显示,但是再次查询却不对了?

列名称显示成了属性的字符串,如下图所示:

C# DataGridView数据绑定的问题 (绑定数据经验分享)_第2张图片

我设置的列名不见了????

为什么?那是因为这些在第二次绑定数据的时候自动生成了这些列名,我记得VS2010之前好像是DataGridView属性框里有一项是设置是否允许自动生成列的,设置成False即可解决这个问题,但是VS2015(更新的不知道解决了这个问题没有)没有这个选项,那怎么办?

程序员还得靠代码:

//禁止自动生成列
this.dgvHistory.AutoGenerateColumns = false;

在Form初始化的时候加上这一句,你的Datagridview 就不会出现上图那样的问题了,来看看正常的显示吧

 这样看着是不是更舒服,毕竟这才是我想要的。

 

你可能感兴趣的:(.Net)