Esse título não tem nada demais, é apenas a junção de dois dados do tipo DataTable. O que vou mostrar hoje é um método que recebe dois parâmetros do tipo DataTable, junta os dois dados em um só e retorna o valor.

Usado: Visual Studio 2010, Linguagem C#.NET, Método, Framework.

Como falado em outros artigos publicados, foi criado um método do tipo public e estático. Isso facilita na criação de uma dll ou framework de utilidades que pode ser usado em qualquer projeto. 

Na primeira linha é verificado se os dados enviados são diferentes de null para dar continuidade no método. Após a verificação, é feita uma cópia do primeiro DataTable usando o comando Copy(), em seguida um foreach começa a vasculhar o segundo parâmetro.

Dentro do foreach, é criado uma nova linha e adicionada a um array que no final adiciona os dados ao novo DataTable. No final, o novo DataTable é retornado no caso de não erro. Veja o código 1.1.

 

public static DataTable JoinDataTable(DataTable oDataTable1, DataTable oDataTable2)

        {

            if (oDataTable1 == null || oDataTable2 == null)

                return null;

 

            DataTable odtt = oDataTable1.Copy();

            foreach (DataRow row in oDataTable2.Rows)

            {

                try

                {

                    DataRow r = odtt.NewRow();

                    r.ItemArray = row.ItemArray;

                    odtt.Rows.Add(r);

                }

                catch (Exception e) //if the schema are not equal

                {

                    string x = e.Message;

                    break;

                }

            }

            return odtt;

        }

 

Code 1.1

O tratamento de erro não é um dos melhores, dessa forma, se for utilizar este método mude apenas a parte do catch fazendo com que retorne algum erro real ao desenvolvedor que for utilizar o método.

Qualquer dúvida, pode entrar em contato pelo site.