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.