c#datagridview绑定datatable常见问题汇总及解答

从南到北 2013-05-20 02:39:10
datagridview绑定datatable是为了使数据的操作更加的方便,在方便的同时也伴随着各种各样的问题出现,许多新手不知道从何解决这些问题。希望通过这个帖子能够帮助一些初学者。那么我先来说说我所遇到的一个问题。我在利用datagridview显示数据的时候需要动态修改列头,datagridview红的列为0,datatable中有两列,然后把datagridview的datasourse指向datatable,但是程序在运行过程中如果修改了列表头,则内容为空了,修改的代码为datatable.Columns[0].ColumnName = "ss";datatable.AcceptChanges();但是结束之后列表头要么没有变化,要么就是变化了 但是没有显示数据,之前datagridview中是有数据的。有谁遇到过这样的问题么?怎么解决的?帮忙解答下,非常感谢。
...全文
477 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
_小黑_ 2013-05-22
  • 打赏
  • 举报
回复
dt.Columns.Contains("你的列名")//判断列名是否存在
stiff_neck 2013-05-22
  • 打赏
  • 举报
回复
引用 13 楼 zuoziqiang520 的回复:
我跟踪了 列名改变了 但datagridviewz中还是之前的 或者就是列名改变了却没有数据 之前是有数据的 修改之后就变成之前有多少行然后就有多少行的空的。
列名改变之后是否重新绑定了datagridview.DataSource=datatable 不行的话就上代码瞧瞧
maxldwy 2013-05-21
  • 打赏
  • 举报
回复
绑定一个 列名 试试
从南到北 2013-05-21
  • 打赏
  • 举报
回复
怎么都没有多少人进来呢 真心感觉还是百度好呀 有人吗 自己先顶下
从南到北 2013-05-21
  • 打赏
  • 举报
回复
我跟踪了 列名改变了 但datagridviewz中还是之前的 或者就是列名改变了却没有数据 之前是有数据的 修改之后就变成之前有多少行然后就有多少行的空的。
stiff_neck 2013-05-20
  • 打赏
  • 举报
回复
正常是没问题的,debug跟一下,看看绑定的时候datatable的列名是什么,datatable中是否有数据
从南到北 2013-05-20
  • 打赏
  • 举报
回复
还有人么?这个问题真的难么?怎么都没有人解答呢
从南到北 2013-05-20
  • 打赏
  • 举报
回复
可是我的列数不是固定的 这样的话也行吗?
stiff_neck 2013-05-20
  • 打赏
  • 举报
回复
在datagridview上添加列,设置每一列的datapropertyname属性和datatable的列名一致 datagridview.DataSource = datatable; 如果datatable的列名变了,datapropertyname的值也要变才行 如果只是想要画面上datagridview显示的列名变化,直接修改datagridview列的headtext属性
从南到北 2013-05-20
  • 打赏
  • 举报
回复
我这是为了显示不同的语言,但是修改datatable的列头之后datagridview中的列头改变了,但是原来的数据却不显示了 而原先是多少行则显示多少行空数据。这怎么解决?
从南到北 2013-05-20
  • 打赏
  • 举报
回复
怎么没有人遇到过这种情况么?
从南到北 2013-05-20
  • 打赏
  • 举报
回复
多谢removeLove 确实很急
removeLove 2013-05-20
  • 打赏
  • 举报
回复
看楼主那么着急,帮你顶下~
从南到北 2013-05-20
  • 打赏
  • 举报
回复
会的人帮忙解答下 不会的人帮忙顶一下
从南到北 2013-05-20
  • 打赏
  • 举报
回复
有人在吗?或者有会的么?帮忙解答下 着急用 在线等待!谢谢
从南到北 2013-05-20
  • 打赏
  • 举报
回复
在修改的过程中我也尝试用datagridview.columns[0].headertext属性修改,但是直接报错,原因是datagridview的列为0(数据源已经绑定datatable),所以这样修改行不通。
dbfC#DataGridView中的常用技巧 只列出技巧部分,后面会有补充 0(最基本的技巧). 获取某列中的某行(某单元格)中的内容 this.currentposition = this.dataGridView1.BindingContext [this.dataGridView1.DataSource, this.dataGridView1.DataMember].Position; bookContent = this.database.dataSet.Tables[0].Rows [this.currentposition][21].ToString().Trim(); MessageBox.Show(bookContent); 1、自定义列 //定义列宽 this.dataGridView1.Columns[0].Width = 80; this.dataGridView1.Columns[1].Width = 80; this.dataGridView1.Columns[2].Width = 180; this.dataGridView1.Columns[3].Width = 120; this.dataGridView1.Columns[4].Width = 120; Customize Cells and Columns in the Windows Forms DataGridView Control by Extending Their Behavior and Appearance Host Controls in Windows Forms DataGridView Cells 继承 DataGridViewTextBoxCell 类生成新的Cell类,然后再继承 DataGridViewColumn 生成新的Column类,并指定 CellTemplate为新的Cell类。新生成的Column便可以增加到DataGridView中去。 2、自动适应列宽 Programmatically Resize Cells to Fit Content in the Windows Forms DataGridView Control Samples: DataGridView.AutoSizeColumns( DataGridViewAutoSizeColumnCriteria.HeaderAndDisplayedRows); DataGridView.AutoSizeColumn( DataGridViewAutoSizeColumnCriteria.HeaderOnly, 2, false); DataGridView.AutoSizeRow( DataGridViewAutoSizeRowCriteria.Columns, 2, false); DataGridView.AutoSizeRows( DataGridViewAutoSizeRowCriteria.HeaderAndColumns, 0, dataGridView1.Rows.Count, false); 3、可以绑定并显示对象 Bind Objects to Windows Forms DataGridView Controls 4、可以改变表格线条风格 Change the Border and Gridline Styles in the Windows Forms DataGridView Control Samples: this.dataGridView1.GridColor = Color.BlueViolet; this.dataGridView1.BorderStyle = BorderStyle.Fixed3D; this.dataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.None; this.dataGridView1.RowHeadersBorderStyle = DataGridVie

110,532

社区成员

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

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

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