如何读取DataGrid的列数

cx_greatoo 2009-04-23 09:57:25
需求如下,我是要做一个导出Excel的功能。我把数据从数据库中查询出来以后,填充到DataGrid里面去。然后再把DataGrid中的数据导到Excel。我的代码是这样写的:
int rowCount = dgDataGrid.Items.Count;
int colCount = dgDataGrid.Columns.Count;

//标题项
for (int i = 0; i <colCount; i++)
{
exWS1.Cells[1, 1 + i] = dgDataGrid.Columns[i].HeaderText.ToString().Trim();
}

//数据项
for (int i = 1; i <= rowCount; i++)
{
for (int j = 0; j < colCount; j++)
{
exWS1.Cells[1 + i, 1 + j] = dgDataGrid.Items[i-1].Cells[j].ToString();
}
}
在调试的时候发现int colCount = dgDataGrid.Columns.Count;这里的值为0,实际是有8列的。请高手指点一下,我哪里写错了,为什么读不出DataGrid的当前列数。补充一句,我设置了允许DataGrid自动创建列。
...全文
291 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoshuaige2009 2010-11-24
  • 打赏
  • 举报
回复
有个疑问,datagrid类中根本就没有Item()函数,你是怎么用 int rowCount =dgDataGrid.Items.Count;这行代码的????
有一种获取行数的方法如下:
C_Recordset rs= m_adodc.GetRecordset(); // m_adodc是ADO控件的变量;
long lrow=0;
while(!rs.GetEof())
{
lrow++;
rs.MoveNext();
}
m_row=lrow;//lrow即使所求的行数。

xiaoshuaige2009 2010-11-24
  • 打赏
  • 举报
回复
long m_col=m_datagrid.GetColumns().GetCount();这样就可以了。我也是花了好长时间才摸索到啊。
有的人说用m_datagrid.GetVisibleCols(),但是这个函数只能获得显示的列数。
marssongxs 2009-04-24
  • 打赏
  • 举报
回复
没道理啊,我试过了,可以取道列数的啊,你在仔细检查一下是不是哪里做了清空操作
东北小硬人 2009-04-24
  • 打赏
  • 举报
回复
不懂~!
yulien 2009-04-24
  • 打赏
  • 举报
回复
cx_greatoo 2009-04-24
  • 打赏
  • 举报
回复
dgDataGrid.ColumnCount直接这么写是错误的啊,运行的时候就会报错!
LGP88864237 2009-04-23
  • 打赏
  • 举报
回复
dgDataGrid.ColumnCount是列
footprint2008 2009-04-23
  • 打赏
  • 举报
回复
改一下:
int colCount = dgDataGrid.ColumnCount;
peterb 2009-04-23
  • 打赏
  • 举报
回复
这个没有去注意 应该可以获取的啊

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧