关于这个问题有很多帖子(在这个网站和其他网站上),但我阅读的每个解决方案都涉及SQL
查询,我不是在寻找这样的解决方案。
我有三个DataTables
( vb.NET
),我想通过第一列(包含 a TimeStamp
)加入它们。
例如,如果我有三个call ,并像下DataTables
一个一样填充:TAB01
TAB02
TAB03
TAB01 TAB02 TAB03
TimeStamp Value1 | TimeStamp Value2 | TimeStamp Value3
2019/10/09 09:00:00 0.2334 | 2019/10/09 09:00:00 1.1212 | 2019/10/09 09:00:00 2.1221
2019/10/09 09:01:00 0.1111 | 2019/10/09 09:01:00 4.1211 | 2019/10/09 09:01:00 3.1766
2019/10/09 09:02:00 2.6566 | 2019/10/09 09:02:00 3.2122 | 2019/10/09 09:02:00 0.1322
我怎样才能像下一个一样填写第四个DataTable
(比如说)?TAB04
TAB04
| TimeStamp Value1 Value2 Value3 |
| 2019/10/09 09:00:00 0.2334 1.1212 2.1221 |
| 2019/10/09 09:01:00 0.1111 4.1211 3.1766 |
| 2019/10/09 09:02:00 2.6566 3.2122 0.1322 |
问题似乎很简单(我的第一次尝试是使用集合来保存所有三个表中的数据,然后匹配TimeStamps
以填充第四个表)。但是,由于我不能保证TimeStamps
三个表中的表相互匹配,因此集合技术看起来是最糟糕的选择。
有没有另一种方法来解决这个问题?
更新:
我在这里找到了这种方法,它使用 a在两个不同表的列之间DataSet
创建:DataRelation
'Create DataSet:
Dim ds As DataSet = New DataSet
'Add tables to DataSet:
ds.Tables.Add(TAB01)
ds.Tables.Add(TAB02)
'Create DataRelation:
Dim dr As DataRelation = New DataRelation("dr", TAB01.Columns(0), TAB02.Columns(0))
'Add DataRelation to DataSet:
ds.Relations.Add(dr)
到目前为止一切顺利(我完全理解上面代码的语法。但是,正如链接中提到的那样,命令:
DGV1.DataSource = ds
应该自动填充DataGridView
(命名DGV1
)作为表TAB04
。缺少某些内容,因为此代码未填充DGV1
任何内容。这是一个有效的方法吗?如果是这样,我错过了什么?为什么DGV1
还是空的?