c#中合并两个数据表

本文关键字:两个 数据表 合并 | 更新日期: 2023-09-27 18:11:32

我有两个数据表如下

Table1
--------------------------------
Id     | Batch  | Qty
-----------------------------
1         A1       5
2         A2       5
3         A3       5
4         A4       5

Table2
--------------------------------
Id     | Batch  | Qty
-----------------------------
1         A1       6
2         A2       6
3         A3       6
5         A5       10
Expected result
--------------------------------
Id     | Batch  | Qty
-----------------------------
1         A1       6 (Qty updated)
2         A2       6 (Qty updated)
3         A3       6 (Qty updated)
4         A4       5 (remains as same)
5         A5       10 (row in table 2)

我如何在c#中实现这一点。如果有人知道这个数据表的操作,请分享给我们。

c#中合并两个数据表

试试这样做,这是一个如何合并两个数据表的例子…

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Data; 
namespace ConsoleApplication1 
{ 
  class Program 
  { 
     static void Main(string[] args) 
     { 
          DataColumn col; 
          DataTable table1 = new DataTable(); 
          table1.PrimaryKey = new DataColumn[] { 
          col = table1.Columns.Add("slot_id") 
           }; 
          col.DataType = typeof(int); 
          col.Unique = true; 
          col = table1.Columns.Add("appointment_time"); 
          col = table1.Columns.Add("patient_name"); 
          col = table1.Columns.Add("patient_doctor"); 
          table1.Rows.Add(1, "0900", "George Michael"); 
          DataTable table2 = new DataTable(); 
          table2.PrimaryKey = new DataColumn[] { 
          col = table2.Columns.Add("slot_id") 
           }; 
          col.DataType = typeof(int); 
          col.Unique = true; 
         col = table2.Columns.Add("appointment_time"); 
          table2.Rows.Add(1, "0900"); 
          table2.Rows.Add(2, "1000"); 
          table2.Rows.Add(3, "1100"); 
          table2.Rows.Add(4, "1200"); 
         DataTable merged = new DataTable(); 
        merged.Merge(table1); 
        merged.Merge(table2); 
        foreach (DataColumn dc in merged.Columns) 
        Console.Write(dc.ColumnName + "'t"); 
        Console.WriteLine(); 
       foreach (DataRow dr in merged.Rows) 
       { 
            foreach (DataColumn dc in merged.Columns) 
            Console.Write(dr[dc.ColumnName] + "'t"); 
            Console.WriteLine(); 
       } 
       Console.WriteLine(); 
       Console.Write("Press any key to continue . . . "); 
       Console.ReadKey(true); 
       Console.WriteLine(); 
    } 
  } 
}