C#将DataGridView中的更改提交到DataTable

时间:2012-05-09 11:32:11

标签: c# datagridview datatable

我需要一个带有一个DataGridView Form和一个DataTable的代码或项目示例,这样我就可以编辑DataGridView单元格,然后所有更改都会自动提交到DataTable中。另外,如何使用DataGridView以相同的方式手动创建具有相同列的DataTable?

我尝试手动创建具有相同列的DataGridView和DataTable,然后设置DataGridView.DataSource = DataTable,但保存到表中的数据为空(无论如何新行数是正确的,但是值无效)。

尝试google it - 所有的示例和问题都是关于savind到DataBase的,但我不需要DB,我只需要一个简单的DataTable和DataGridView绑定。

谢谢!

4 个答案:

答案 0 :(得分:4)

没有办法从DataGridView列自动创建表格(编辑要改进这一点:有多种方法可以自动创建数据库结构 - ORM在这里是一个很好的关键字 - 但是我猜这不是你需要的)。另一种方法很有效:创建表并将其分配给DataGridView作为其数据源。然后网格应显示相应的列。

“存储”数据表中的值仅在您“告知”列时才有效,这些列与它们相关的基础表的哪个字段。即:您需要创建表列(它具有名称),并且在创建DataGridView列时,需要将列名分配给列的DataPropertyName属性。

最简单的方法:创建一个类型化数据集(使用“添加到项目”对话框添加新的“DataSet”),在数据集的设计器中手动创建一个表,将数据集的实例拖到表单中并指定这是您DataGridView的数据来源。其他所有内容都应自动显示。

答案 1 :(得分:1)

答案 2 :(得分:1)

如果您的DataTable被设置为dataGridView的DataSource,则dataGridView中的内容将反映DataTable中的数据,反之亦然。因此,如果对dataGridView进行更改,则这些更改已经在DataTable中。

答案 3 :(得分:-1)

DatagridView转换为DataTable
在C#.NET中:

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

VB.NET:

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