[Solved] How to merge two DataTables like this?


Here you go. Might not be pretty but does the job.
No matter which DataTable has more row it will add them.

private static DataTable MergeTables(DataTable dt1, DataTable dt2)
{
    DataTable merged = new DataTable();

    //copy column struct from dt1
    merged = dt1.Clone();

    //create columns from dt2
    foreach (DataColumn col in dt2.Columns)
    {
        merged.Columns.Add(col.ColumnName);
    }

    int rows;

    if (dt1.Rows.Count > dt2.Rows.Count)
    {
        rows = dt1.Rows.Count;
    }
    else
    {
        rows = dt2.Rows.Count;
    }

    for (int i = 0; i < rows; i++)
    {
        DataRow row = merged.NewRow();

        if ( i < dt1.Rows.Count)
        {
            for (int c = 0; c < dt1.Columns.Count; c++)
            {
                row[c] = dt1.Rows[i][c];
            }
        }

        if (i < dt2.Rows.Count)
        {
            for (int c2 = dt1.Columns.Count; c2 < dt2.Columns.Count + dt1.Columns.Count; c2++)
            {
                row[c2] = dt2.Rows[i][c2-dt1.Columns.Count];
            }
        }
        merged.Rows.Add(row);
    }
    return merged;
}

solved How to merge two DataTables like this?