Converter DataView em DataTable


por Mauricio Junior em 1/1/2011 0



Se você deseja aprender ou ver como funciona a conversão de DataView em DataTable, então continue lendo este artigo. Foi feito um método do tipo public e static que faz o trabalho de transformar um tipo de dado DataView em DataTable comumente usado.

Usado: Visual Studio 2010, Linguagem C#.NET, DataView, DataTable.

O método criado é simples e fácil de entender. O melhor, é gerar uma classe pública, criar método público e estático. O primeiro passo é gerar um clone do DataView, fazer um “for” para pegar os nomes das colunas e depois gerar o DataTable. No final, o método retorna um DataTable. (Code 1.1)

 

        /// <summary>

        /// Converte um DataView para um DataTable

        /// </summary>

        /// <param name="oDataView">DataView a converter</param>

        public static DataTable ConverteDataViewToDataTable(DataView oDataView)

        {

            if (oDataView == null)

                return null;

 

            DataTable obNewDt = oDataView.Table.Clone();

            int idx = 0;

            string[] strColNames = new string[obNewDt.Columns.Count];

            foreach (DataColumn col in obNewDt.Columns)

            {

                strColNames[idx++] = col.ColumnName;

            }

 

            IEnumerator viewEnumerator = oDataView.GetEnumerator();

            while (viewEnumerator.MoveNext())

            {

                DataRowView drv = (DataRowView)viewEnumerator.Current;

                DataRow dr = obNewDt.NewRow();

                try

                {

                    foreach (string strName in strColNames)

                    {

                        dr[strName] = drv[strName];

                    }

                }

                catch

                {

                }

                obNewDt.Rows.Add(dr);

            }

 

            return obNewDt;

        }

 

 

Code 1.1

Foi utilizado GetEnumerator() para fazer o loop dos valores dentro do DataView. A minha dica é gerar uma estrutura separada como dll ou framework para colocar este método. Assim, a dll pode ser referenciada em vários projetos e utilizada sem qualquer problema.

Existem outros métodos publicados como artigos no site www.ecode10.com disponível gratuitamente, dessa forma, você pode ir juntando os dados no seu framework ou dll própria. Segue alguns links deles abaixo:

Filtrar o DataTable Dinamicamente:

Ordenar DataTable:

Adicionar uma coluna em um DataTable

voltar   comente  subir

 
Mauricio Junior Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; .
Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, ECODE10.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A. Blog: blog.mauriciojunior.org, Site pessoal www.mauriciojunior.org



Comentários:

Comente (dê sua opinião):
Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

Aplicativo iCotação Free
NDOC para versão framework 2.0
Permitir Teste pelo Browser no WebService
Trabalhando com GridView, RowCommand e DataKeysNames
Armazenando dados no ViewState – Parte I
Vídeo: Framework de dados - parte 1
XAML Power Toys
Vídeo: Montando o Windows Phone em NYC
A mágica do ResolveURL
Dicas para programar melhor
Token e Sessão Corrente com C#.NET
Criando Números Aleatoriamente
Trabalhando com Session
Visual Studio 11 – Novas funcionalidades e melhorias parte 3
Ordenando no DataTable
Criando XML a partir do DataSet Tipado com Visual Studio.NET 2005 – Parte I
Pegando IP da Máquina com CSharp
Criando Números Aleatoriamente
Dica ReportViewer
Sort no GridView sem ir ao banco de dados novamente
MSDN Code Gallery
Append Data Bound Items
Método MD5
Sistema de Login em ASP – Parte IX
LG Optimus 7 com Windows Phone 7
Flickr para Windows 7 e Windows Phone 7
Vídeo: Imagem Efeito
Dispositivos inteligentes a caminho da sua casa
Sistema de Login – Parte IV
Usando public interface
Validator no VS 2005
Trabalhando com o componente TabContainer
Sistema de Catalogar Livros
Montando estrutura de um site MVC 2 com Visual Studio .NET 2010 - Parte 2
IsWholeNumber