合并两个不相同的数据表行

时间:2014-07-15 08:43:16

标签: c# asp.net datatable merge datatables

我有两个数据表dt1和dt2,其中dt1包含一列" ID"和dt2包含一列" NAME"。我的要求是结合两个数据表并创建一个新的数据表(即)

enter image description here

如上所述,我需要获取数据表(dt1& dt2)的数据,并需要创建一个新的数据表


2 个答案:

答案 0 :(得分:2)

你可以做这样的事情

DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();

dt1.Columns.Add("id", typeof(Int32));
dt2.Columns.Add("Name", typeof(String));

DataRow dr = dt1.NewRow();
dr["id"] = 1;
dt1.Rows.Add(dr);

dr = dt1.NewRow();
dr["id"] = 2;
dt1.Rows.Add(dr);

dr = dt2.NewRow();
dr["name"] = "XXX";
dt2.Rows.Add(dr);

dr = dt2.NewRow();
dr["name"] = "YYY";
dt2.Rows.Add(dr);

DataTable dt3 = new DataTable();
dt3.Columns.Add("id", typeof(Int32));
dt3.Columns.Add("Name", typeof(String));

for (int i = 0; i < dt1.Rows.Count; i++)
{
    dr = dt3.NewRow();

    dr["id"] = dt1.Rows[i]["id"];
    dr["name"] = dt2.Rows[i]["name"];
    dt3.Rows.Add(dr);
}

答案 1 :(得分:1)

如果要与DataTables合并,可以执行以下操作:

        DataTable table1 = new DataTable("Items");
        DataColumn column1 = new DataColumn("id", typeof(System.Int32));
        table1.Columns.Add(column1);

        DataTable table2 = new DataTable("details");
        DataColumn column = new DataColumn("Name", typeof(System.String));
        table1.Columns.Add(column);

        table1.Merge(table2); //table1 will have 2 columns after executing this line