【发布时间】:2019-02-07 14:57:24
【问题描述】:
我有两个列名不同的数据表,因为它们是从两个不同的 MySQL 表中填充的
- DataTable1 有
ID、Name、Brand、Genre和Creator - DataTable2 有
ID、Name、Brand、Type和EntryCreator
我想合并它们,这样我就可以在DataGridView1 中显示它们。我做了
DataTable2.Columns(3).ColumnName = "Genre"
DataTable2.Columns(4).ColumnName = "Creator"
然后
DataTable1.Merge(DataTable2, false, MissingSchemaAction.Add)
BindingSource1.DataSource = DataTable1
DataGridView1.Source = BindingSource1
但在显示时,它只显示来自DataTable2的数据
【问题讨论】:
-
您是否已将两个表的 PrimaryKey 值设置为 ID 字段?
-
我使用 `MySqlAdapter 来填充它们。如果它从我的 MariaDB 数据库中复制 PK,我会这样做,否则,我不会。 (我没有将 ID 列声明为 Primay Key)
-
您能否简单地将您在 MySqlDataAdapter 中的查询更改为第二个表具有与第一个表相同的列名称? IE SELECT .... Type as Brand,EntryCreator as Creator ..... 这样两个表将具有相同的列名
-
如果设置 DataTable2.PrimaryKey = null; 会发生什么DataTable1.PrimaryKey=null; ?
-
对不起,我的意思是没有什么不为空
标签: vb.net datagridview datatable