初学求教:DataGridView的数据源如何绑定到DataTable

CloudAbyss 2014-05-24 11:00:28
嗯,不在开发专用系统里,我把我遇到的问题代码大概描述一下了。

以下建两个对象:
DataTable m_dt
DataGridView m_dgv

其中m_dt用SqlDataAdapter,将SELLCT语句填好后从数据库一表里读出一列然后fill()到m_dt里,那数据库表也就一列,这个时候的m_dt可以完全不设架构,系统会自动生成,甚至我可以手动创建一个DataColumn,设置DataPropertyName等属性然后添加到m_dt里,到这一步都没有问题。

问题出在当我想把这个m_dt关联到m_dgv的时候,如果不设置m_dgv内的结构,直接绑定,设置如下语句是没有问题:
m_dgv.dataSource=m_dt。但是,如果我是手动为m_dgv添加DataGridViewColumn列,设置列属性(中文标题等等),然后再绑定,这样的结果是软件编译后打都打不开,主界面都出不来。不知道是卡在哪里。

综上所述,就是将DataTalbe中的某一列,绑定到DataGridView中的某一列,这代码是怎么写的啊?
看过有个对象叫做BindingSource的,不过看了半天没懂,大家帮帮忙啊?

...全文
157 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
CloudAbyss 2014-05-28
  • 打赏
  • 举报
回复
嗯,之后我自己解决问题了,隔了段时间没上网,现在把解决方案发一下,以便帮助到和我遇到同样问题的人。 首先定义如下对象:

DataGridView m_datagridview = new DataGridView();
DataTable m_datatable = new DataTalbe();
其实,绑定的时候不需要用BindingSource这个中间组件,象下面这样就可以直接绑定了:

m_datagridview.DataSource = m_datatable;
接下来,手动为m_datagridview添加列,我以前的做法是这样的

DataGridViewColumn dgvc = new DataGridViewColumn();
dgvc.Name = "NAME";
dgvc.DataPropertyName = "FIELD";
m_datagridview.Columns.Add(dgvc);
主贴中没有说明一件事,我那个m_datatable是自动从数据库读取字符串表格的,结果象上面这样一添加后,程序启动都启动不起来,关键原因在于,DataGridViewColumn这个对象它还有细化分类,专门用来存储文本的列有专门的对象,所以在手动创建列的时候,不是创建DataGridViewColumn对象,而是要创建DataGridViewTextBoxColumn对象。把上面手动添加列的代码弄成

DataGridViewTextBoxColumn dgvc = new DataGridViewColumn();
dgvc.Name = "NAME";
dgvc.DataPropertyName = "FIELD";
m_datagridview.Columns.Add(dgvc);
象这样,编译通过启动后,就一切正常了。
exception92 2014-05-26
  • 打赏
  • 举报
回复
DataTable中的一列 绑定到某一列?那其他列你是怎么绑定的?
save4me 2014-05-25
  • 打赏
  • 举报
回复

DataGridView dataGridView1 = new DataGridView();
BindingSource bindingSource1 = new BindingSource();

dataGridView1.ColumnCount = 2;

dataGridView1.Columns[0].Name = "Field1";
dataGridView1.Columns[0].DataPropertyName = "Field1";
dataGridView1.Columns[1].Name = "Field2";
dataGridView1.Columns[1].DataPropertyName = "Field2";

bindingSource1.DataSource = GetDataTable();
dataGridView1.DataSource = bindingSource1;

17,741

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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