ADO.NET - Uma visão geral II : O objeto DataTable
Continuando o artigo - ADO.NET - Uma visão geral I : Objetos Connection , Command e DataReader - vamos tratar do objeto DataTable antes disto fiquei pensando em falar um pouco sobre as diferenças entre ADO e ADO.NET. |
Se você conhece um pouco de ADO já sabe que ela é uma tecnologia de acesso a dados ideal para ambientes de redes locais , mas quando pensamos em aplicações distribuídas na Internet enfrentamos os seguintes problemas :
A ADO.NET já foi criada para trabalhar com o
acesso desconectado aos dados e faz a conexão com a fonte de
dados através de um objeto DataAdapter (
SqlDataAdapter e
OleDbDataAdapter) e não
através de um provedor OLE DB como a ADO , com isto o desempenho
é otimizado.
A ADO tenta resolver estes problemas fornecendo um modelo onde podemos até usar o objeto Recordset para acesso a dados desconectado, onde os dados são gerenciados em memória . Quando se trata de acesso a dados o objeto Recordset é a principal ferramenta que a ADO oferece , , o problema é que o objeto Recordset representa uma única tabela de dados , e se você precisar trabalhar com dados de mais de uma tabela vai ter que recorrer a SQL.
A ADO.NET oferece o objeto DataSet que pode representar na memória muitas tabelas. Os objetos DataTable são usados para representar e tratar estas tabelas ; além disto podemos criar relacionamentos entres estas tabelas através de objetos DataRelation. Desta forma o DataSet consegue ser uma representação mais próxima do banco de dados.
No quesito de dados basta dizer que enquanto a ADO se baseia na COM a ADO.NET se baseia em XML. Dados no formato XML são mais fáceis de trafegar pela rede mundial , visto ser apenas texto , e não precisa de conversão alguma.
Neste artigo vou focar a atenção nos objetos DataTable e DataView.
O objeto DataTable
Como já dissemos um objeto DataTable representa uma ou mais tabelas de dados em memória. Os objetos DataTable estão contidos no objeto DataSet e/ou DataView. Abaixo temos uma relação das principais propriedades do objeto DataTable:
Vamos criar um objeto DataTable via código com os seguintes campos : Código , Nome e Endereço ; para isto temos que seguir os seguintes passos :
Obs: a estrutura da tabela a ser criada deve ser :
1 - Inicie um novo projeto no Visual Studio.NET com as seguintes características (sinta-se a vontade para alterar a seu gosto.)
2- A seguir inclua no formulário padrão - form1.vb - um controle DataGrid e um controle - Button - conforme abaixo:
3- No evento Click do botão - Button - vamos inserir o código que cria o objeto DataTable:
Private
Sub
Button1_Click(ByVal
sender As
System.Object,
ByVal
e As System.EventArgs)
Handles Button1.Click 'cria um objeto DataTable Dim dtTesteTabela As DataTable = New DataTable("TesteTabela") 'declara as variáveis objetos DataColumn e DataRow Dim dcColuna As DataColumn Dim drLinha As DataRow
'campo codigo 'Criamos uma coluna(Datacolumn)para o campo código definindo o tipo (DataType) 'e nome da coluna (ColumnName) dcColuna = New DataColumn() dcColuna.DataType = System.Type.GetType("System.Int32") dcColuna.ColumnName = "Codigo" dcColuna.ReadOnly = True dcColuna.Unique = True dtTesteTabela.Columns.Add(dcColuna)
'campo nome 'Criamos uma coluna(Datacolumn)para o campo nome definindo o tipo (DataType) 'e nome da coluna (ColumnName) dcColuna = New DataColumn() dcColuna.DataType = System.Type.GetType("System.String") dcColuna.ColumnName = "Nome" dcColuna.ReadOnly = False dcColuna.Unique = False dtTesteTabela.Columns.Add(dcColuna)
'campo endereco 'Criamos uma coluna(Datacolumn)para o campo nome definindo o tipo (DataType) 'e nome da coluna (ColumnName) dcColuna = New DataColumn() dcColuna.DataType = System.Type.GetType("System.String") dcColuna.ColumnName = "Endereco" dcColuna.ReadOnly = False dcColuna.Unique = False dtTesteTabela.Columns.Add(dcColuna)
'inclui alguns dados na tabela drLinha = dtTesteTabela.NewRow drLinha("Codigo") = 1 drLinha("Nome") = "José Carlos Macoratti" drLinha("Endereco") = "Rua Lins , 100"
'inclui a linha na tabela dtTesteTabela.Rows.Add(drLinha)
'inclui alguns dados na tabela drLinha = dtTesteTabela.NewRow drLinha("Codigo") = 2 drLinha("Nome") = "Janice Rachel Macoratti" drLinha("Endereco") = "Rua Mirassol , 150"
'inclui a linha na tabela dtTesteTabela.Rows.Add(drLinha)
'inclui alguns dados na tabela drLinha = dtTesteTabela.NewRow drLinha("Codigo") = 3 drLinha("Nome") = "Jefferson Andre Macoratti" drLinha("Endereco") = "Rua Girassol , 110" 'inclui a linha na tabela dtTesteTabela.Rows.Add(drLinha)
'inclui a tabela no dataset Dim dtTesteDataSet1 As DataSet = New DataSet() dtTesteDataSet1.Tables.Add(dtTesteTabela)
'vincula o dataset1 ao datagrid1 DataGrid1.SetDataBinding(dtTesteDataSet1, "TesteTabela") End Sub |
Ao executar o projeto e clicar no botão para criar a tabela teremos :
Leia a continuação deste artigo em : ADO.NET - Uma visão geral III : O objeto DataView ...
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
|
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências: