将特定列从一个数据表复制到另一个
问题描述:
这看起来不像是应该令人困惑或困难的事情,但我很难找到解决此问题的答案。我想将列中的数据而不是行从一个大的DataTable复制到一个较小的数据表中。将特定列从一个数据表复制到另一个
我有一个数据表与许多列数据(大约20),和我想要在复制的数据表中的列(4)的字符串数组。有没有合理的方法来完成这项任务?
答
您可以克隆表,删除不需要的列,然后执行合并。由于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
发现了额外的列。
也许最好是调用'destTable.Merge(sourceTable,false,MissingSchemaAction.Ignore)'而不是第二个周期 –
@Yuriy感谢您的建议,那会更好。我已经更新了我的回复。 –