0

关于这个问题有很多帖子(在这个网站和其他网站上),但我阅读的每个解决方案都涉及SQL查询,我不是在寻找这样的解决方案。

我有三个DataTables( vb.NET),我想通过第一列(包含 a TimeStamp)加入它们。

例如,如果我有三个call ,并像下DataTables一个一样填充:TAB01TAB02TAB03

          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还是空的?

4

0 回答 0