これはあなたを助けるかもしれませんし、他の状況に適用するのに十分なほど一般的かもしれません。
これは、2つのテーブル、各テーブルから必要な列名を含む2つの配列、およびテーブルを結合するために使用されるキーを渡すことによって、データをマージする関数です。
tblAが駆動テーブルであり、tblBを参照するという前提があります。
Sub Main()
Dim tbl As DataTable
Dim colsA() As String = {"ProjectNo", "Quantity"}
Dim colsB() As String = {"Customer"}
Dim sKey As String = "ProjectNo"
tbl = MergeData(tblA, tblB, colsA, colsB, sKey)
End Sub
Private Function MergeData(ByVal tblA As DataTable, ByVal tblB As DataTable, _
ByVal colsA() As String, ByVal colsB() As String, _
ByVal sKey As String) As DataTable
Dim tbl As DataTable
Dim col As DataColumn
Dim sColumnName As String
Dim row As DataRow
Dim newRow As DataRow
Dim dv As DataView
tbl = New DataTable
dv = tblB.DefaultView
For Each sColumnName In colsA
col = tblA.Columns(sColumnName)
tbl.Columns.Add(New DataColumn(col.ColumnName, col.DataType))
Next
For Each sColumnName In colsB
col = tblB.Columns(sColumnName)
tbl.Columns.Add(New DataColumn(col.ColumnName, col.DataType))
Next
For Each row In tblA.Rows
newRow = tbl.NewRow
For Each sColumnName In colsA
newRow(sColumnName) = row(sColumnName)
Next
dv.RowFilter = (sKey & " = " & row(sKey).ToString)
If dv.Count = 1 Then
For Each sColumnName In colsB
newRow(sColumnName) = dv(0).Item(sColumnName)
Next
End If
tbl.Rows.Add(newRow)
Next
Return tbl
End Function
KeeperOfTheSoul: おかげで応答のために。私はvb.netのテーブルに参加する方法を知る必要があります。 – stewdaddy5000