2011-11-25 173 views
1

这看起来不像是应该令人困惑或困难的事情,但我很难找到解决此问题的答案。我想将列中的数据而不是行从一个大的DataTable复制到一个较小的数据表中。将特定列从一个数据表复制到另一个

我有一个数据表与许多列数据(大约20),和我想要在复制的数据表中的列(4)的字符串数组。有没有合理的方法来完成这项任务?

回答

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发现了额外的列。

+2

也许最好是调用'destTable.Merge(sourceTable,false,MissingSchemaAction.Ignore)'而不是第二个周期 –

+0

@Yuriy感谢您的建议,那会更好。我已经更新了我的回复。 –

相关问题