2

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

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

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

谢谢!

4

4 回答 4

4

无法从DataGridView列中自动创建表(编辑要完善这一点:有一些方法可以自动创建数据库结构 - ORM 在这里是一个很好的关键字 - 但我想这不是你需要的)。反之亦然:创建表并将其分配给DataGridView作为其数据源的表。然后网格应该显示相应的列。

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

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

于 2012-05-09T11:42:50.793 回答
1

我希望你这个来自 codeproject 的链接可能会有所帮助:

http://www.codeproject.com/Questions/80935/save-datagrid-data-to-database

http://www.codeproject.com/Articles/12846/Auto-Saving-DataGridView-Rows-to-a-SQL-Server-Data

于 2012-05-09T11:43:45.437 回答
1

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

于 2013-01-10T16:07:18.160 回答
0

转换DatagridViewDataTable.
在 C#.NET 中:

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

VB.NET:

Dim dt As DataTable = CType(Me.dataGridView1.DataSource,DataView).Table
于 2012-08-19T06:26:00.747 回答