这似乎不应该令人困惑或困难,但我很难找到这个问题的答案。我想将数据而不是行的列从一个大型DataTable复制到一个较小的DataTable。
我有一个包含许多数据列的DataTable(大约20个),以及我想要在复制的DataTable中的列(4)的字符串数组。有没有合理的方法来完成这项任务?
答案 0 :(得分:6)
您可以克隆表,删除不需要的列,然后执行合并。感谢Yuriy的有用评论,这大大降低了代码。
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
中找到的额外列。