Объединение двух таблиц данных в C#
У меня есть два datatables следующим образом
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#. Если кто-нибудь знает эту операцию таблицы данных, пожалуйста, поделитесь..
1 ответов
попробуйте что-то вроде этого, это пример того, как объединить два datatables...
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();
}
}
}