Копирование определенных столбцов из одного источника данных в другой - PullRequest
1 голос
/ 26 ноября 2011

Это не похоже на то, что должно быть запутанным или трудным, но мне трудно найти ответ на эту проблему. Я хочу скопировать столбцы с их данными, а не строками, из одной большой таблицы данных в меньшую.

У меня есть DataTable со многими столбцами данных (около 20) и строковым массивом столбцов (4), которые мне нужны в скопированной DataTable. Есть ли разумный способ выполнить эту задачу?

1 Ответ

6 голосов
/ 26 ноября 2011

Вы можете клонировать таблицу, удалить ненужные столбцы, а затем выполнить слияние.Благодаря полезному комментарию Юрия, это значительно сокращает код.

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...