0

この問題については (このサイトや他のサイトに) たくさんの投稿がありますが、私が読んだすべての解決策にはSQLクエリが含まれており、そのような解決策を探しているわけではありません。

3 つのDataTables( vb.NET) があり、それらを最初の列 ( を含む) で結合したいと考えていますTimeStamp

たとえば、とDataTables呼ばれる3 つがあり、次のように満たされているとします。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次のように 4 番目(たとえば)を埋めるにはどうすればよい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 |

問題は非常に単純に思えます (私の最初の試みは、コレクションを使用して 3 つのテーブルすべてからデータを保存し、次に を照合しTimeStampsて 4 番目のテーブルを埋めることでした)。TimeStampsただし、 3 つのテーブルの が互いに一致することを保証できないため、コレクション手法は最悪の選択肢のように見えます。

この質問にアプローチする別の方法はありますか?

アップデート:

ここで、 a を使用して2 つの異なるテーブルの列の間にaDataSetを作成するこのアプローチを見つけました。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(named DGV1) を table として自動的に埋める必要がありますTAB04。このコードには何も入力されていないためDGV1、何かが不足しています。これは有効な方法ですか?もしそうなら、私は何が欠けていますか? なぜDGV1はまだ空なのですか?

4

0 に答える 0