Well, a word: "merge" in English may mean: connect, link, join, merge, mix, unite...
If i understand you well, you want to merge data, what is well known in programming language as
join[
^]
var mergedData = from a in tableA.AsEnumerable()
join b in tableB.AsEnumerable() on a.Field<int>("Key") equals b.Field<int>("ForeignKey")
select new
{
A = a.Field<int>("Key"),
B = a.Field<string>("FieldB"),
C = b.Field<int>("ForeignKey"),
D = b.Field<string>("FieldD")
};
DataTable bigTable = new DataTable();
bigTable.Columns.AddRange(new DataColumn[]
{
new DataColumn("Key", typeof(int)),
new DataColumn("FieldB", typeof(string)),
new DataColumn("ForeignKey", typeof(int))
new DataColumn("FieldD", typeof(string))
});
bigTable = mergedData.CopyToDataTable();
For further details, please see:
Join Operators (LINQ to DataSet)[
^]
Queries in LINQ to DataSet[
^]
Creating a DataTable From a Query (LINQ to DataSet)[
^]
In case you want to merge tables, which have the same structure, try this:
DataTable bigTable = new DataTable();
bigTable.Columns.AddRange(new DataColumn[]
{
new DataColumn("EmpId", typeof(int)),
new DataColumn("EmployeeName", typeof(string)),
new DataColumn("DepartmentId", typeof(int))
});
foreach(DataTable t in ds.Tables)
{
foreach(DataRow r in t.Rows)
{
bigTable.ImportRow(r);
}
}
Good luck!