Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

David Ramires

Método Retorna DataTable

Recommended Posts

sou iniciante em C# e eu estava com a seguinte situação:

Era necessário criar vários DataTables dentro de uma classe X, para não ficar fazendo copy e paste a mesma coisa que mudando os nomes/tipos das colunas no DataTable, criei um método onde eu passo o nome das colunas e o tipo que elas deveram ser.

 

criei uma classe exemplo que contém o método:

 

Classe Exemplo Util

public static class Util
    {
        public static DataTable RetornaDataTable(Dictionary<string, string> colunas)
        {
            DataTable dt = new DataTable();
            DataColumn dtColuna;

            if (colunas != null)
            {
                int contador;
                contador = 0;
                foreach (string chave in colunas.Keys)
                {
                    dtColuna = new DataColumn();
                    dtColuna.DataType = System.Type.GetType(colunas[chave]);
                    dtColuna.ColumnName = chave.ToString();
                    dtColuna.ReadOnly = false;
		    dt.Columns.Add(dtColuna);
                    if (contador == 0)
                    {
                        dt.PrimaryKey = new DataColumn[] { dt.Columns[chave.ToString()] };
                    }                    
                    contador++;
                }
                dtColuna = null;
            }
            return dt;
        }
    }

Antes da chamada do método, preciso indicar os nomes das colunas e seus tipos, para isso utilizei a Collections Generic Dictionary

 

Chamando o método e passando os parâmetros

 Dictionary<string, string> colunas = new Dictionary<string, string>();

 colunas.Add("Data", "System.DateTime");
 colunas.Add("Quantidade", "System.Int32");
 colunas.Add("Minutagem", "System.Double");
 colunas.Add("TMA", "System.Double");     
       
 DataTable dt = Util.RetornaDataTable(colunas);

Logo em seguinda vou adcionar uma linha para teste dentro do meu DataTable.

 

DataRow dtRow;
 dtRow = dt.NewRow();
 dtRow["DATA"] = Convert.ToDateTime("20/04/1983");
 dtRow["Quantidade"] = 2;
 dtRow["Minutagem"] = 3.60;
 dtRow["TMA"] = 180;
 dt.Rows.Add(dtRow);

 dt = null;

Espero que seja útil para mais alguém, qualquer dúvida é só postar!

http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.