繁体   English   中英

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

[英]C# Commit changes in DataGridView to DataTable

我需要一个带有一个DataGridView表单和一个DataTable的代码或项目示例,以便我可以编辑DataGridView单元格,然后将所有更改自动提交到DataTable中。 另外,如何以其他方式手动创建带有DataGridView相同列的DataTable?

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

试图用Google搜索它-所有示例和问题都是关于将数据存储到数据库中的,但是我不需要数据库,我只需要一个简单的DataTable和DataGridView绑定。

谢谢!

无法从DataGridView列自动创建表( 编辑以进行优化:有多种方法可以自动创建数据库结构-ORM在这里是一个很好的关键字-但我想那不是您所需要的)。 另一种方法则很好:创建表并将其分配给DataGridView作为其数据源。 然后,网格应显示相应的列。

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

最简单的方法:创建类型化的数据集(使用“添加到项目”对话框来添加新的“数据集”),在数据集的设计器中手动创建表格,将数据集的实例拖到表单上并将其分配为数据源到您的DataGridView 其他所有内容应自动出现。

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

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

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

VB.NET:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM