C#中DataGridView控件加载数据无法显示

首先,我原计划是查询工作日志表中的数据,并将其反应在datagridview控件上,

部分代码如下

dataGVWorklog.AutoGenerateColumns = false;//禁止datagridview自动加载列
IDate iWorklogDate = AbstractFactory.Factory.CreateConcreteClass("ConcreteDAL", "DAL", "t_worklog");
List<dynamic> lists =iWorklogDate.Date(dateTPBegin.Value, dateTPEnd.Value, txtName.Text);//调取查询方法
dataGVWorklog.DataSource = lists;

通过查询语句,查到了数据,list集合中有数据,但是显示却如下:
【通过查看数据库,应该查到2条数据】
C#中DataGridView控件加载数据无法显示_第1张图片
查看资料,浏览博客,经过了一上午全无头绪,后来发现注释掉下面这行,会显示数据。

dataGVWorklog.AutoGenerateColumns = false;//禁止datagridview自动加载列

显示如下:
C#中DataGridView控件加载数据无法显示_第2张图片
随后我在这个控件的操作中发现了玄机(具体操作如下)
C#中DataGridView控件加载数据无法显示_第3张图片
C#中DataGridView控件加载数据无法显示_第4张图片
C#中DataGridView控件加载数据无法显示_第5张图片

究其原因
归根结底是没有将查询到的数值放到相对应的列中去,所以第一次尝试中,我把禁止自动加载列这行代码注释后,就显示了数据内容,所以确定了,代码没有问题,是可以正常显示数据内容的,这时候就考虑一下控件的设置,在控件编辑列的设置中,有一项DataPropertyName,是建立查询到的数据列与控件中自定义的数据列之间的联系的,填写数据源的属性名称,就可以将属性名称对应的字段值插入到相应的位置中。

你可能感兴趣的:(机房重构)