2012-05-09 61 views
2

我需要一个代码或项目的示例与一个DataGridView窗体和一个DataTable,所以我可以编辑DataGridView单元格,然后所有更改都自动提交到DataTable中。另外我怎样才能创建DataTable与DataGridView的其他方式手动相同的列?C#提交DataGridView更改为DataTable

我试图创建的DataGridView和DataTable与手动相同的列,然后设置DataGridView.DataSource =数据表,但保存到表中的数据为空(反正的新行号码是正确的,但值是无效的) 。

试图谷歌它 - 所有的样品和问题都是关于数据库的savind,但我不需要数据库,我只需要一个简单的DataTable和DataGridView绑定。

谢谢!

回答

4

有没有办法从DataGridView列自动创建一个表(编辑为了完善这样的:有办法来自动创建数据库结构 - ORM将在这里是一个很好的关键字 - 但我想这不是你所需要的) 。另一种方式运作良好:创建表并将其分配给作为其数据源的DataGridView。然后网格应显示相应的列。

仅当您已经“告诉”列时,“存储”数据表中的值才有效,这些列与它们相关的基础表的哪个字段有关。即:您需要创建表列(具有名称),并且在创建DataGridView列时,需要将列名称分配给该列的DataPropertyName属性。为你创建一个类型化的数据集(使用“添加到项目”对话框来添加一个新的“数据集”),在数据集的设计器中手动创建一个表格,将数据集的一个实例拖到窗体上,将其作为数据源分配给您的DataGridView。其他一切应该自动出现。

+0

听起来不错,会试着去做,希望它能奏效,谢谢! – Zura

-2

转换DatagridViewDataTable
在C#.NET:

DataTable dt = ((DataView)this.dataGridView1.DataSource).Table; 

VB.NET:

Dim dt As DataTable = CType(Me.dataGridView1.DataSource,DataView).Table 
1

如果你的数据表被设置为数据源的DataGridView的,在DataGridView的内容将反映在数据表中的数据和反之亦然。因此,如果您对dataGridView进行了更改,那些更改已经存在于DataTable中。