Data Tables – Parte III

Continuando com os posts sobre DataTables chegou a  hora de inspecionar quais os campos fazem parte da estrutura da tabela.

Isto pode ser útil caso tenhamos a necessidade de mostrar os nomes dos campos e os tipos de dados ou ainda, verificar o tipo de dado do campo antes de incluir um valor.

Uma tabela possui uma coleção de objetos do tipo DataColumn. Assim, para descobrirmos as informações sobre sua estrutura, basta inspecionarmos as principais propriedades de cada ítem da coleção.

A tabela abaixo demonstra algumas das principais propriedades de DataColumn:

Propriedade Descrição
AutoIncrement Define se a coluna é um campo inteiro para numeração automática. Geralmente este tipo de campo é usado para definir chaves primárias de tabelas sendo o seu preenchimento feito automaticamente pelo banco.
AutoIncrementSeed Indica qual é o número inicial para campos de numeração automática.
AutoIncrementStep Define qual o incremento numérico para o campo de auto numeração.
Caption Usado para armazenar o texto que pode ser usado como cabeçalho das colunas
ColumnName Nome da coluna.
DataType Retorna um System.Type indicando qual o tipo de dados correspondente ao campo no framework.
DefaultValue Mostra qual o valor padrão a ser armazenado quando um novo registro é craido. Este valor deve ser compatível com o tipo de dado da coluna.
Expression Armazena uma expressão que pode ser usada para definir campos calculados.
MaxLength Configura o tamanho máximo do dado a ser gravado, como por exemplo no caso de strings, o comprimento máximo do texto a ser gravado.
ReadOnly Indica se o campo é somente leitura.
Table Retorna um objeto DataTable com o qual o campo está vinculado.

Estes são apenas os principais. Consulte a documentação do framework para uma lista mais completa.

Considere a tabela de exemplo do primeiro post.

Para listar os nomes dos campos e os tipos de dados, você percorre cada objeto DataColumn da coleção Columns da tabela e mostra na tela com o seguinte código:

    5 // Mostra a estrutura da tabela "Instrumentos"

    6 Console.WriteLine( "Estrutura da tabela {0}", TabelaDeExemplo.TableName );

    7 Console.WriteLine( "Nome".PadRight(30) + "Tipo" );

    8 foreach( DataColumn col in TabelaDeExemplo.Columns )

    9 {

   10     Console.WriteLine( "{0}\t{1}",

   11         col.ColumnName.ToString().PadRight(30),

   12         col.DataType  );       

   13 }

O resultado deve ser mais ou menos parecido com o seguinte:

Estrutura da tabela instrumentos
Nome Tipo
IdInstrumento System.Int32
Tipo System.String
Marca System.String
Modelo System.String
AnoDeFabricacao System.String



Por enquanto é isso. Aguarde os próximos posts.