【问题标题】:How I can Merge two datatable into one datatable in c#如何在 C# 中将两个数据表合并为一个数据表
【发布时间】:2012-06-29 10:37:51
【问题描述】:

我有两个数据表,我想合并它们并想要这样的输出;

表 1 值:

FirstName   LastName    
  AAA         BBB         
  AAA         BBB

表 2 值: *

FullName
  CCC
  CCC

*

现在我希望 FullName 的值和 FirstName 的值合并到 Firstname 的一列 合并后out应该是这样的....

FirstName   LastName    
  AAA         BBB         
  AAA         BBB         
  CCC
  CCC   

两个表都有来自 dtable1 的 FirstName 和 LastName 列以及来自 dtable2 的 FullName

我的 c# 应用程序中有这段代码

             DataSet firstGrid = new DataSet();
            DataSet secondGrid = new DataSet();
            DataTable table1 = dataGridView3.DataSource as DataTable;
            DataTable table2 = dataGridView2.DataSource as DataTable;
            DataColumn[] colunm = new DataColumn[table1.Columns.Count];



            DataTable table3 = new DataTable();
           // table3.;
            table3 = table1.Copy();

            table3.Merge(table2);
            dataGridView1.DataSource = table3;

【问题讨论】:

  • 您的问题中已经有了答案 - 使用 Merge...function。
  • @Reniuz 可能是合并,但另一个表也需要类似的架构
  • @V4Vendetta 我知道MissingSchemaAction.Add 应该这样做。

标签: c#


【解决方案1】:

这是你要找的吗?

SELECT FirstName, LastName
FROM Table1

UNION

SELECT FullName AS 'FirstName', NULL AS 'LastName'
FROM Table2

【讨论】:

    【解决方案2】:

    你可以试试这个

    for(int i=0;i<dataTable2.Rows.Count;i++)
    {
        DataRow drTemp=dataTable1.NewRow();
        drTemp[0]=dataTable2.Rows[i][0];
        drTemp[1]="";
        dataTable1.Rows.Add(drTemp);
    }
    

    基本上,您将全名插入到 table1 名字中,而姓氏则为空值。最后 dataTable1 将与 dataTabe2 合并。

    【讨论】:

    • 我在 c# 中有这些表,而不是在数据库中
    • 好吧,如果您有两个数据表,那么我认为您必须逐行迭代第二个数据表并将其迭代到第一个数据表。检查编辑的答案
    猜你喜欢
    • 2015-10-06
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    • 2016-02-06
    • 2011-12-08
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    相关资源
    最近更新 更多