簡體   English   中英

如何在C#中動態組合兩個或多個DataTable

[英]How to combine two or more DataTables dynamically in c#

我有兩個要填充的數據表。

DT1 and DT2

每個DataTable具有相同的列標題。 但是,DT2可以具有或可以不具有相同數量的行。

ID | Type | Value

我需要新表根據“類型”列中返回的結果數根據需要添加行,並將DT3行ID = DT1.ID和值設置為“ N / A”

       DT1                        DT2                             DT3
ID | Type   | Value        ID | Type   | Value        ID | Type   | Value
1   ItemCost   5000        27  ItemCost   3800        27  ItemCost   3800
2   TravCost   5700        28  TravCost   4851        28  TravCost   4851
3   UpCharge   3600                                   3   UpCharge   N/A
4   TaxCost    7000                                   4   TaxCost    N/A

這是我針對此問題的代碼:

            DataTable dt1 = new DataTable();
            dt1.Columns.Add("ID");
            dt1.Columns.Add("Type");
            dt1.Columns.Add("Value");
            dt1.Rows.Add(new Object[] { "1", "ItemCost", "5000" });
            dt1.Rows.Add(new Object[] { "2", "TravCost", "5700" });
            dt1.Rows.Add(new Object[] { "3", "UpCharge", "3600" });
            dt1.Rows.Add(new Object[] { "4", "TaxCost", "7000" });
            DataTable dt2 = new DataTable();
            dt2.Columns.Add("ID");
            dt2.Columns.Add("Type");
            dt2.Columns.Add("Value");
            dt2.Rows.Add(new Object[] { "27", "ItemCost", "3800" });
            dt2.Rows.Add(new Object[] { "28", "TravCost", "4851" });
            DataTable dt3 = new DataTable();
            dt3 = dt2.Clone();
            foreach (DataRow item in dt2.Rows)
            {
                dt3.Rows.Add(new object[] { item["ID"], item["Type"], item["Value"] });
            }
            foreach (DataRow item in dt1.Rows)
            {
                DataRow[] drs = dt3.Select("Type='" + item["Type"].ToString() + "'");
                if (drs.Count() == 0)
                {
                    dt3.Rows.Add(new object[] { item["ID"], item["Type"], "N/A" });
                }
            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM