Вы можете клонировать таблицу, удалить ненужные столбцы, а затем выполнить слияние.Благодаря полезному комментарию Юрия, это значительно сокращает код.
Dim columnsToKeep As String() = {"ColumnName1", "ColumnName2"}
Dim destTable As DataTable = sourceTable.Clone()
For index As Integer = destTable.Columns.Count - 1 To 0 Step - 1
Dim columnName As String = destTable.Columns(index).ColumnName
If Not columnsToKeep.Contains(columnName) Then
destTable.Columns.RemoveAt(index)
End If
Next
destTable.Merge(sourceTable, False, MissingSchemaAction.Ignore)
MissingSchemaAction.Ignore
выполнит объединение и проигнорирует дополнительные столбцы, найденные в sourceTable
.