【问题标题】:Combine 2 Datatable合并2个数据表
【发布时间】:2016-09-13 13:46:11
【问题描述】:

我有 2 个数据表

第一个数据表只有列名

例如:A B

第二个数据表有列名和值

 A  B  C  D                                                                         
 1  2  3  4                                                                           
 2  3  4  5

现在我怎样才能从第二个数据表中获取值到第一个数据表的列匹配

First Datatable 的最终结果应该是这样的

A  B                                                                               
1  2

我尝试合并,但出现数据类型不匹配

【问题讨论】:

  • 如果第一个没有数据,为什么不使用 SELECT 语句从第二个创建呢?
  • @Plutonix 我的要求是我需要从第二个数据表获取值到第一个数据表..
  • 如果它们不是相同的列数据类型(根据错误消息),这可能很难做到

标签: vb.net datatable


【解决方案1】:

您可以使用DefaultView.ToTable 方法,该方法允许您指定新表中所需的列

在此示例中,我使用变量 tableWithData 来表示具有要提取的值的数据表,并使用变量 tableWithoutData 来表示仅具有列名的表。变量 newTable 是另一个接收 ToTable 方法结果的数据表,但您也可以使用 tableWithoutData 作为调用的目的地。

Dim newTable = tableWithData.DefaultView.ToTable(False, tableWithoutData.Columns _
      .Cast(Of DataColumn)() _
      .Select(Function(x) x.ColumnName) _
      .ToArray())

ToTable 方法的第二个参数是一个 ParamArray,其中包含您要从源表中获取的列的名称。为了得到这个值,我们可以在目标表上使用一点 Linq 来提取列名

【讨论】:

  • 感谢史蒂夫做得很好
猜你喜欢
  • 2023-04-02
  • 1970-01-01
  • 2021-04-12
  • 2014-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-22
相关资源
最近更新 更多