Check this example
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id"), new DataColumn("Name"), new DataColumn("Country") });
dt.Rows.Add(1, "John Hammond", "United States");
dt.Rows.Add(2, "Mudassar Khan", "India");
dt.Rows.Add(3, "Suzanne Mathews", "France");
dt.Rows.Add(4, "Robert Schidner", "Russia");
DataColumn col = dt.Columns.Add("City", typeof(string));
col.SetOrdinal(2); //3rd Position
DataTable dt2 = new DataTable();
dt2.Columns.Add("Id", typeof(string));
dt2.Columns.Add("City", typeof(string));
dt2.Rows.Add(1, "Chicago");
dt2.Rows.Add(2, "Mumbai");
dt2.Rows.Add(3, "Paris");
dt2.Rows.Add(4, "Moscow");
foreach (DataRow row in dt.Rows)
{
row["City"] = dt2.Select("Id = " + row["Id"])[0]["City"];
dt.AcceptChanges();
}
}