Professional Documents
Culture Documents
NET
Introdução
Venho por este meio preencher uma lacuna existente na bibliografia portuguesa relativamente ao
ADO.NET. Neste primeiro artigo iremos abordar a arquitectura do ADO.NET e como aceder aos dados
existentes numa base de dados Access e a sua integração com aplicações Windows. Numa próxima
oportunidade iremos abordar a edição e actualização de dados com ADO.NET!
Para ter acesso à funcionalidade ADO.NET, temos que utilizar componentes para realizar as
tarefas relativas ao acesso a dados. O principal desses componentes é o DataSet. Este
proporciona o acesso a tabelas, linhas, colunas e pode conter diversas tabelas.
Na imagem que se segue, apresenta-se um diagrama com uma visão da arquitectura do ADO.NET
System.Data
Expões os objectos usados para aceder e armazenar dados através da criação de dados
relacionados, armazenados na memória virtual. Esses objectos são independentes da fonte de
dados. O namespace System.Data contem vários componentes, sendo alguns deles:
≡ DataSet
≡ DataTable
DataSet
Um DataSet pode conter uma ou mais tabelas, essas tabelas podem ser de diferentes bases de
dados. Cria restrições de integridade nas tabelas e também cria relações entre tabelas. Só os
dados alterados é que são alterados na base de dados, estes dados antes de serem enviados, são
temporariamente armazenados num ficheiro XML.
DataTable
É um objecto chave dentro do namespace System.Data. Este objecto DataTable tem as seguintes
propriedades:
DataProvider
O DataProvider tem todos os objectos necessários para aceder a uma base de dados específica.
O VS.NET tem três providers, sendo eles:
≡ SQL Server (optimizado para usar o SQL Server);
≡ Genérico OLEDB (para drivers OLEDB; Base de dados relacionais; Ficheiros; entre outros)
≡ ODBC
System.Data.OleDb
Este namespace contem objectos que fornecem a funcionalidade de aceder a dados através de um
provedor OLE-DB (ex. Access).
Os objectos são:
≡ OleDbConnection
≡ OleDbCommand
≡ OleDbDataSet
≡ OleDbDataReader
≡ OleDbDataAdapter
Command – Objecto que representa uma instrução SQL executada através de um Connection.
DataAdapter – Fornece dados ao DataSet e propaga as alterações do DataSet para a Base de Dados.
O serviço do DataAdapter é “adaptar” os dados dos objectos Command e incluí-los no DataSet,
levando assim os dados do DataSet à Base de Dados através dos objectos Command.
Quando falamos de desempenho, a utilização de um DataReader leva vantagem, pois obtém o acesso
aos dados assim que o objecto fica disponível, pelo contrário do DataSet, é necessário aguardar
para que este fique preenchido, além disso o DataReader é do tipo ForwardOnly, ou seja, dados
que são unicamente de leitura e com o acesso desde o primeiro registro até ao último. Com o
DataSet pode-se “andar” para a frente ou para trás nos dados.
Legenda:
1 – Tecnologia utilizada para elaborar o projecto.
2 – Tipo de Aplicação.
Quando carregar-mos em OPEN, do lado esquerdo vai aparecer-nos o item class que adiciona-mos e
abre-nos o próprio ficheiro que criamos, como podemos ver na imagem que se segue:
Depois de ter efectuado os passos anteriores, até ao momento temos o projecto criado assim como
uma classe para utilizar na criação da conexão à Base de Dados.
Como não temos nenhuma ligação efectuada, então vamos criar uma nova conexão (New Connection...)
Depois de escolher a Base de Dados testamos a ligação, clicando no botão Testar ligação.
Se tudo estiver bem, aparecerá a seguinte mensagem:
Como podemos ver na imagem já possuímos uma ligação à Base de Dados. Então clicamos em NEXT.
Aqui escrevemos a instrução SQL ( SELECT * FROM cliente ) como podemos ver na imagem.
Clicamos em NEXT.
Clica-se em Finish e vai aparecer-nos uma janela em que clicamos em Include Password
Agora iremos apresentar os dados que a base de dados contem, através de um DataGrid.
A DataGrid é uma grelha que nos permite obter a informação de uma ou mais colunas, com as
respectivas linhas de uma tabela da Base de Dados.
Agora vamos programar para que a DataGrid receba os dados da Base de Dados.
Então,
oleDbDataAdapter1.Fill(dataSet11);
Legenda:
1 – Tecnologia utilizada para elaborar o projecto.
2 – Tipo de Aplicação.
3 – O nome que damos ao nosso projecto.
Depois de ter efectuado os passos anteriores, até ao momento temos o projecto criado assim como
uma classe para utilizar na criação da conexão à Base de Dados.
Agora vamos criar uma estrutura gráfica no From1 para obter os dados da base de dados.
Assim temos os campos que vão receber a informação da Base de Dados, assim como botões <, <<,
>>, >, para se movimentar de dado para dado.
namespace Projecto_Teste1
{
public class cliente
{
private DataSet dscliente;
public cliente()
{
dscliente = new DataSet();
}
public DataSet getcliente()
{
/criação de ligação à base de dados
OleDbConnection oLigar = new OleDbConnection();
//preencher o data set (conjunto de dados) com a tabela que o adaptador foi
sacar à base de dados
da.Fill(this.dscliente,"Clientes");
o seguinte código:
this.txtnnumero.DataBindings.Add("Text",dscliente.Tables[0],"id");
this.txtnome.DataBindings.Add("Text",dscliente.Tables[0],"nome");
this.txtidade.DataBindings.Add("Text",dscliente.Tables[0],"idade");
this.txtxtelefone.DataBindings.Add("Text",dscliente.Tables[0],"telefone");
this.txttelemovel.DataBindings.Add("Text",dscliente.Tables[0],"telemovel");
this.txtrua.DataBindings.Add("Text",dscliente.Tables[0],"rua");
Agora clicamos em cada botão e adicionamos o código respeitante a cada um.
Então obtemos:
Para este botão, clicamos duas vezes no botão e escrevemos este código:
Para este botão, clicamos duas vezes no botão e escrevemos este código:
Para este botão, clicamos duas vezes no botão e escrevemos este código:
Para este botão, clicamos duas vezes no botão e escrevemos este código:
Este artigo apenas explora o acesso a dados. Na próxima oportunidade iremos tentar
estudar como editar e actualizar os dados de uma base de dados. Qualquer assunto
relacionado com este artigo pode ser enviado para tiagocoelho@pacpi.com.
Tiago Coelho…