博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于C#的DataGridView设置了DataSource后Rows无值问题
阅读量:5060 次
发布时间:2019-06-12

本文共 1059 字,大约阅读时间需要 3 分钟。

前言

今天写一个导出到Excel表的东西,以前也写过,之前导出都是将界面上的DataGridView中数据导出,没有任何问题,然而今天的导出场景是在界面是点击导出按钮,直接在数据库中查询符合条件的数据导出,不需要显示在界面上。

本文若有出入,请指正——来自小渣渣的颤抖

客官可移步小站查看本文

实现及问题

直接看解决即可

实现

因为项目中有公用的导出方法,只需要传递一个DataGridView参数即可,所以肯定是将查出来的DataTable转成一个DataGridView,以前都是直接在WinForm中拖,现在肯定是直接new一个。

// 新建一个DataGridView对象DataGridView dgv = new DataGridView(); // 添加列DataGridViewTextBoxColumn col_HTBH = new DataGridViewTextBoxColumn();col_HTBH.Name = "ZXHTBH";col_HTBH.DataPropertyName = "ZXHTBH";col_HTBH.HeaderText = "合同编号";dgv.Columns.Add(col_HTBH);...... // 查询导出数据DataTable dt = BLL.YardSystem.DC.QueryQKHWXX();// 为dgv设置数据源 dgv.DataSource = dt; // 导出数据 .......

按照上面的逻辑,new的dgv,添加的列设置了列名称,列的DataPropertyName,设置了该属性就能实现DataTable中对应的列匹配上。

问题

做好了上面的工作,第一次运行,导出成功后,查看Excel表,没有数据,除了每一列的名称,debug,DataTable确实有数据,dgv的DataSource也有数据,然而却发现它的RowsCount为0,What。RowsCount为0。

解决

一通捣腾,有人说绑定了但是没有填充,也有人说循环为一行赋值,一看就觉得low,最后看到一个哥们说把dgv添加到Controls里面,当时我还郁闷,我又不需要他显示,加进去干啥,然而就是这个不知道干啥起作用了。

this.Controls.Add(dgv);

Perfect,搞定,也不知道为什么,就是需要做这样一个操作。

最后

此致,敬礼

转载于:https://www.cnblogs.com/numen-fan/p/11153208.html

你可能感兴趣的文章
20181207作业-郭恩赐
查看>>
C语言大数四则运算
查看>>
netstat
查看>>
Helm - Kubernetes包管理专家
查看>>
Poj3225Help with Intervals区间线段树
查看>>
sgu101 欧拉路
查看>>
package.json和package-lock.json的区别
查看>>
VMware虚拟机的Linux系统访问本地磁盘
查看>>
STL之List存储结构体
查看>>
★古今中外著名14大悖论
查看>>
[IIS] 测试的产品登陆之后有个引用外部站点js的请求半天都无法返回,导致网页一直在打转,Selenium的driver也无法对页面进行下一步的操作...
查看>>
[转]EeeBox 安裝 Debian 後驅動 Wireless 筆記
查看>>
C++中的1LL
查看>>
Python私有变量
查看>>
数据库Sharding的基本思想和切分策略
查看>>
javascript:event对象
查看>>
react-native 踩坑记
查看>>
VC为控件添加背景
查看>>
Wojilu学习笔记 (01)
查看>>
JavaScript 开发者的 10 款必备工具
查看>>