ADO.NET Framework
INE 5612 – DSOOII
Prof. Frank Siqueira - Turma 04238A
Equipe: Jucemar, Rodrigo, William
Introdução ao ADO.net
 Hoje há novas necessidades e desafios nos modelos de
programação para acesso a dados em relação ao antigo
modelo “cliente/servidor”.
 Há um crescimento no número de aplicações Web que rodam
no cliente, sendo assim não se pode manter uma conexão
aberta durante muito tempo.
 As aplicações hoje são desenvolvidas em multicamadas e há
grandes desafios de como passar esses dados entre essas
camadas.
Introdução ao ADO.net
 O modelo de programação atual pede que nós tenhamos um




modelo desconectado.
O ADO.net foi criado pensado justamente nessas novas
necessidades e desafios do novo modelo de programação.
Constitui-se, basicamente, em um conjunto de classes para
trabalhar com dados.
Inclui ferramentas para se conectar a um banco de dados, executar
comandos e recuperar os resultados. Os resultados são
processados diretamente, colocados em um objeto DataSet e
exibidos para o usuário .
ADO.NET é uma evolução do ADO (ActiveX Data Objects).
Sistemas Operacionais compatíveis
Windows
Vista
Windows
CE
Windows
XP
ADO.net
Windows
98
Windows
2000
Windows
Millennium
Edition
Windows
NT 4 com
SP6a
Características
 É compatível com aplicações de cenários conectados;
 É compatível com aplicações de cenários desconectados;
 É um modelo de programação com suporte avançado para o
XML;
 Permite trabalhar com múltiplas fontes de dados diferentes
ao mesmo tempo e de uma mesma maneira;
Características
 Totalmente integrado ao .NET Framework;
 Como é nativo, sua API pode ser utilizada com as diversas
linguagens que fazer parte do .NET Framework: Visual Basic,
C#, entre outras;
 É sucessor do ADO, porém mais flexível;
 Possui um conjunto de Classes, Interfaces, Estruturas e
Enumerações que gerem o aceso a dados dentro do .NET
Framework;
SQL
Server
arquivos
textos
XML
MySQL
ADO.net
Access
FireBird
Oracle
Sybase
Compatibilidade com fontes de dados.
Permite a comunicação com qualquer banco de dados relacionais entre outras fontes como
arquivos CVS e Excel e etc.
Arquitetura do ADO.net
Arquitetura do ADO.net - DataProvider
 São bibliotecas que
possibilitam uma maneira
comum de interagir com
uma fonte específica de
dados.
 Cada biblioteca possui um
prefixo que indica qual
provedor ela suporta.
DataProvider - Principais provedores
Nome do Provedor
API prefixo
Descrição
ODBC Data Provider
Odbc
Fonte de dados com uma
interface ODBC interface.
Geralmente usada para
banco de dados antigos
OleDb Data Provider
OleDb
Fonte de dados que expõe
uma interface OleDb
interface, ou seja: Access
ou Excel
Oracle Data Provider
Oracle
Para banco de dados
Oracle
SQL Data Provider
Sql
Para interação com o
Microsoft SQL Server
Arquitetura do ADO.net - DataProvider
 Connection: Usado para se conectar a
base de dados
 Command: Usado para criar comandos
dentro da fonte de dados
 DataReader: Fornece um acesso
conectado somente-leitura e somentepara-frente a uma fonte de dados.
 O DataReader efetua uma única
passagem pelo conjunto de registros do
banco da forma mais eficiente possível.
São objetos que não podem ser
diretamente instanciados. O
DataReader é retornado pelo método
ExecuteReader do objeto Command.
Arquitetura do ADO.net - DataProvider
DataAdapter: Componentes encarregados de
chamar os comandos de leitura, atualização,
inclusão e exclusão de informações em uma
fonte de dados pode ser usado para
preencher um DataReader ou um DataSet.
 O DataAdapter promove associação entre o
provedor de dados .NET e o DataSet. É um
mediador, que facilita a comunicação entre o
banco de dados e o DataSet. O DataAdapter
lê os dados do banco e os armazena dentro
do DataSet através do método Fill. Ele
também escreve as alterações efetuadas nos
dados, a partir do DataSet, para que elas
posteriormente sejam gravadas no banco
através do método Update.

Arquitetura do ADO.net - DataSet
DataSet: Fornece um representação
relacional em memória de dados, sendo um
conjunto completo de dados que incluem
tabelas que contém dados, restrições de
dados e relacionamentos entre as tabelas. O
acesso é desconectado.
 É o principal componente da arquitetura
ADO.NET, armazenando dados do banco no
lado do cliente. Funciona como uma coleção
de uma ou mais tabelas, que forma os
objetos DataTable. Cada DataTable
corresponde a uma única tabela ou visão.
Assim, um objeto do tipo DataSet simula a
estrutura da base de dados à qual se efetuou
a consulta.

Arquitetura do ADO.net - DataSet
 Criada para manipular os dados independente da fonte;
 Pode receber fontes de dados de bancos de dados através do
DataAdapter;
 Pode trabalhar diretamente com arquivos XML;
 Pode ainda trabalhar com fontes de dados diferentes dentro
de um mesmo DataSet;
 Permite manipular os dados, efetuando leituras e alterações
necessárias no modelo desconectado, sem a necessidade de
manter a conexão aberta com o banco de dados.
Arquitetura do ADO.net - DataSet
 DataRelationCollection:
Permite a criação de
relacionamentos entre as
DataTables contidas dentro
do DataSet.
 Com tudo isso tem-se um
modelo desconectado em
memória algo muito parecido
com que você possui em um
banco de dados.
Alteração na base - Desconectado
Abrir ligação
Preencher o
DataSet
Fechar ligação
Atualizar a
fonte de dados
Abrir Ligação
Processar o
DataSet
Fechar a
ligação
Exemplos de Utilização – C#
using System.Data.SqlClient;
// Instancia um objeto DataSet
DataSet objetoDataSet = new DataSet();
// Instancia um objeto conexão e passa dados para a conexão como parametros
SqlConnection conex = new SqlConnection(“Servidor, DB, User, Senha”);
// Abre a conexão
conex.Open();
// Instância um objeto DataAdapter especializado em Fontes de dados SQL
SqlDataAdapter adapter = new SqlDataAdapter();
Exemplos de Utilização – C#
// Inicializa o atributo do objeto DataAdapter responsável pelas consultas
ao BD passando como parametro a consulta e a conexão
adapter.SelectCommand = new SqlCommand(“select * from Usuarios”,
conex);
//Cria a tabela Usuarios dentro do objeto DataSet e preeche ela com o
resultado da consulta ao BD
adapter.Fill(objetoDataSet,“Usuarios”);
// Fecha a conexão com o servidor
conex.Close();
Exemplos de Utilização – C#
//Retorna a tabela Usuários do objetoDataSet e armazena em uma variavel
DataTable tabela = objetoDataSet.Tables[“Usuarios"];
//Altera o campo cidade do primeiro usuário
tabela.Rows[0][“cidade"] = “Florianopolis";
//Efetua a atualização da base de dados a partir do objetoDataAdapter
adapter.Update(objetoDataSet);
Histórico
• ADO : ActiveX Data Objects (ADO) – mecanismo Component
Object Model criado pela Microsoft para que programas pudessem
trocar informações com as bases de dados.
• Pacote Microsoft Data Access Components (MDAC),
disponibilizado gratuitamente, tem suporte a ASP, Delphi,
PowerBuilder e VBA
• ADO : aplicação em ambientes Cliente/Servidor com acesso
simultâneo de vários usuários. Era utilizado em páginas dinâmicas
desenvolvidas em ASP, que rodavam VBScript e JavaScript no
servidor.
ADO x ADO.NET
•
ADO : utilizava um conjunto comum de classes para executar conexões a bancos de dados, recuperar registros e
efetuar atualizações nesse banco, executar procedures, etc.
•
ADO : basicamente três objetos, que no
ADO.NET foram expandidos e especializados
para suportarem as funcionalidades dos seus
fornecedores de acesso. No esquema ao lado,
“Xxx” pode ser alterado para Odbc, Sql,
dentre outros.
•
ADO.NET : possui dois conjuntos de
classes que são utilizadas para cessar os
dados, dependendo de como eles estão
armazenados.
•
ADO.NET : classes Disponibilizadas em pacotes diferentes. Para acessar um SQL Server, utiliza classes do pacote
System.Data.SqlClient. Para acessar dados em outras fonts (como Excel, MySQL, Access, incluindo SQL Server), são
utilizadas as classes do pacote System.Data.OleDb namespace.
ADO x ADO.NET
• O ADO utiliza o objeto Recordset para navegar e manipular
dados. O ADO.NET substituiu esse objeto por outros três :
DataReader e DataAdapter (para connected recordsets), e
DataSet (para disconnected recordsets).
• O Recordset funciona como uma única tabela. Se for
necessário que ela contenha dados de várias tabelas diferentes,
será necessário executar o comando JOIN para que todos os
registros sejam reunidos em uma única relação.
ADO x ADO.NET
Operação
ADO
ADO.NET
Suporte a XML
Limitado
Completo
Representação dos
dados em memória
Recordset
Dataset
Tabelas
Suporta apenas uma tabela,
demandando uso do operador JOIN
Suporta múltiplas tabelas, com
simulação da estrutura do banco
Navegação
Varredura sequencial das colunas
com o método MoveNext
Colunas representadas como
coleções, permitindo acesso
direto a dados e posições
específicas
Conexão ao banco
de dados
Objeto recordset permite
operações offline, mas o ADO foi
desenhado para operar com uma
conexão sempre ativa à base de
dados.
Conexão dura apenas o tempo
necessário para efetuar
operações no Banco de Dados como
Select ou Update. Informações
são lidas para dentro do objeto
dataset, onde serão trabalhadas
sem que precise haver conexão
ativa com a base de dados.
Passagem de dados
Comunicação em modo binário
(Modelo COM - Composed Objected
Model-marshaling)
XML. Comunicação através de um
data adapter, permite controlar
como os dados são transmitidos
Compartilhamento
de dados entre
aplicações
Suporte limitado ao tipo de
dados que podem ser transmitidos
do recordset
Transmissão de dados baseada em
formato XML, sem restrições ao
tipo de dados que trafegam
Referências
 http://www.macoratti.net/08/11/c_adn_1.htm
 http://msdn.microsoft.com/pt-br/data/gg252014.aspx
 http://www.macoratti.net/adn_bpu1.htm
 http://www.dei.isep.ipp.pt/~jtavares/ADAV/downloads/guiao_ADO_dotN






et.pdf
http://www.macoratti.net/08/11/c_adn_1.htm
http://msdn.microsoft.com/en-us/library/ms973217.aspx
http://support.microsoft.com/kb/183606/en-us?fr=1
http://www.macoratti.net/d040901.htm
http://pt.wikipedia.org/wiki/ActiveX_Data_Objects
http://www.devguru.com/features/tutorials/adonet/AdoNet1.asp
Download

Evolução do ADO para o atual ADO.net.