I Have two datatables as follows
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)
How can i achieve this in c#. If anybody knows this data table operation please share..
The Merge method is used to merge two DataTable objects that have largely similar schemas. A merge is typically used on a client application to incorporate the latest changes from a data source into an existing DataTable.
try something like this, this is an example how to merge two 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();
}
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With