Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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;
}
}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!
David, sempre é útil, parabéns pela iniciativa e por compartilhar!!
Abraços...