Usuário com melhor resposta
Uniao de dois DataSet

Pergunta
-
Respostas
-
Eduardo,
Segue um exemplo que você poderá ajustar a sua necessidade:
DataTable targetTable = dataTable1.Clone(); var dt2Columns = dataTable2.Columns.OfType<DataColumn>().Select(dc => new DataColumn(dc.ColumnName, dc.DataType, dc.Expression, dc.ColumnMapping)); targetTable.Columns.AddRange(dt2Columns.ToArray()); var rowData = from row1 in dataTable1.AsEnumerable() join row2 in dataTable2.AsEnumerable() on row1.Field<int>("ID") equals row2.Field<int>("ID") select row1.ItemArray.Concat(row2.ItemArray).ToArray(); foreach (object[] values in rowData) targetTable.Rows.Add(values);
Ricardo Minoru Makiyama
- Marcado como Resposta EduardoARodrigues quinta-feira, 19 de setembro de 2013 14:48
-
Eduardo,
Segue outro exemplo mais simples, basta alterar as colunas após o select para obter o resultado que você quer:
DataTable result = (from t1 in dt1.AsEnumerable()
join t2 in dt2.AsEnumerable() on t1.Field<int>("id") equals t2.Field<int>("id")
select t1).CopyToDataTable();Ricardo Minoru Makiyama
- Marcado como Resposta EduardoARodrigues quinta-feira, 19 de setembro de 2013 14:48
Todas as Respostas
-
-
José.Diz,
Obrigado pela resposta.
Li o artigo do Boreki.
Mas nao consegui aplicar neste caso ja que tenho DOIS campos para relacionar nos DatSet´s.
Fiz um teste com dois LookUp´s ( LookUp() and LookUp() ) mas gerou erro no processamento.
Grato
Eduardo
-
Eduardo,
Talvez uma solução seja então você tentar armazenar esta estrutura que você esta querendo em uma única table ou até mesmo em uma table temporária.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
-
-
-
-
Eduardo,
Segue um exemplo que você poderá ajustar a sua necessidade:
DataTable targetTable = dataTable1.Clone(); var dt2Columns = dataTable2.Columns.OfType<DataColumn>().Select(dc => new DataColumn(dc.ColumnName, dc.DataType, dc.Expression, dc.ColumnMapping)); targetTable.Columns.AddRange(dt2Columns.ToArray()); var rowData = from row1 in dataTable1.AsEnumerable() join row2 in dataTable2.AsEnumerable() on row1.Field<int>("ID") equals row2.Field<int>("ID") select row1.ItemArray.Concat(row2.ItemArray).ToArray(); foreach (object[] values in rowData) targetTable.Rows.Add(values);
Ricardo Minoru Makiyama
- Marcado como Resposta EduardoARodrigues quinta-feira, 19 de setembro de 2013 14:48
-
Eduardo,
Segue outro exemplo mais simples, basta alterar as colunas após o select para obter o resultado que você quer:
DataTable result = (from t1 in dt1.AsEnumerable()
join t2 in dt2.AsEnumerable() on t1.Field<int>("id") equals t2.Field<int>("id")
select t1).CopyToDataTable();Ricardo Minoru Makiyama
- Marcado como Resposta EduardoARodrigues quinta-feira, 19 de setembro de 2013 14:48
-