DataTable dt3 = new DataTable("dt3"); c12 = new DataColumn("empno"); c22 = new DataColumn("empname"); c32 = new DataColumn("depno"); c42 = new DataColumn("depname"); dt3.Columns.Add(c12); dt3.Columns.Add(c22); dt3.Columns.Add(c32); dt3.Columns.Add(c42); ds.Relations.Add("DepEmp", ds.Tables["dt1"].Columns[2], ds.Tables["dt2"].Columns[0]); foreach (DataRow dr in ds.Tables[0].Rows) { r = dt3.NewRow(); r[0]= dr["empno"]; r[1] = dr["empname"]; foreach (DataRow Er in dr.GetChildRows("DepEmp")) { r[2]=Er["depno"]; r[3]=Er["depname"]; } }