tecnologias web ado.net enrique pimentel leite de oliveira [email protected] rodrigo cristiano silva...

22
Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira Enrique Pimentel Leite de Oliveira [email protected] [email protected] Rodrigo Cristiano Silva Rodrigo Cristiano Silva [email protected] [email protected]

Upload: internet

Post on 18-Apr-2015

110 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira enrique@facens.br Rodrigo Cristiano Silva rodrigo@facens.br

Tecnologias WebADO.NETTecnologias WebADO.NET

Enrique Pimentel Leite de OliveiraEnrique Pimentel Leite de [email protected]@facens.br

Rodrigo Cristiano SilvaRodrigo Cristiano [email protected]@facens.br

Page 2: Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira enrique@facens.br Rodrigo Cristiano Silva rodrigo@facens.br

AgendaAgenda

O que é o ADO.NETO que é o ADO.NETProblemas com EstadoProblemas com EstadoEstrutura do ADO.NET 2.0Estrutura do ADO.NET 2.0Data ProvidersData ProvidersSQL Server Data ProviderSQL Server Data Provider

SqlConnectionSqlConnectionSqlCommandSqlCommandSqlDataReaderSqlDataReaderSqlDataAdapterSqlDataAdapter

DataSetDataSetAcesso DiretoAcesso DiretoAcesso DesconectadoAcesso DesconectadoTableAdapterTableAdapter

Page 3: Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira enrique@facens.br Rodrigo Cristiano Silva rodrigo@facens.br

O que é o ADO.NETO que é o ADO.NET

O ADO.NET permite interagir com bancos de O ADO.NET permite interagir com bancos de dados relacionais e outras fontes de dadosdados relacionais e outras fontes de dados

O ADO.NET é a tecnologia que as aplicações O ADO.NET é a tecnologia que as aplicações ASP.NET usam para se comunicar com bancos ASP.NET usam para se comunicar com bancos de dados, caso precisem adicionar, atualizar, de dados, caso precisem adicionar, atualizar, apagar ou recuperar registrosapagar ou recuperar registros

O ADO.NET possui uma família de objetos que O ADO.NET possui uma família de objetos que provêm todas essas funcionalidadesprovêm todas essas funcionalidades

Page 4: Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira enrique@facens.br Rodrigo Cristiano Silva rodrigo@facens.br

Estrutura do ADO.NETEstrutura do ADO.NET

O ADO.NET é formado por um conjunto de objetos O ADO.NET é formado por um conjunto de objetos que podem ser divididos em dois grupos:que podem ser divididos em dois grupos:

Aqueles que são usados para armazenar e gerenciar Aqueles que são usados para armazenar e gerenciar dados, tais como DataSet, DataTable, DataRow e dados, tais como DataSet, DataTable, DataRow e DataRelationDataRelation

Aqueles que são usados para conectar à uma fonte de Aqueles que são usados para conectar à uma fonte de dados específica, tais como Connection, Command, dados específica, tais como Connection, Command, DataReader, DataAdapter e TableAdapterDataReader, DataAdapter e TableAdapter

Existem vários conjuntos de objetos para conectar Existem vários conjuntos de objetos para conectar à diversas fontes de dados. Cada um desses à diversas fontes de dados. Cada um desses conjuntos é chamado de ADO.NET conjuntos é chamado de ADO.NET Data ProviderData Provider

Page 5: Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira enrique@facens.br Rodrigo Cristiano Silva rodrigo@facens.br

Estrutura do ADO.NET 2.0Estrutura do ADO.NET 2.0

Page 6: Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira enrique@facens.br Rodrigo Cristiano Silva rodrigo@facens.br

Data ProvidersData Providers

A Microsoft oferece os quatro providers abaixo:A Microsoft oferece os quatro providers abaixo:

SQL Server providerSQL Server provider: oferece acesso otimizado ao : oferece acesso otimizado ao banco de dados SQL Server (versão 7.0 ou superior)banco de dados SQL Server (versão 7.0 ou superior)

OLE DB providerOLE DB provider: oferece acesso à qualquer fonte de : oferece acesso à qualquer fonte de dados que tenha um driver OLE DBdados que tenha um driver OLE DB

Oracle providerOracle provider: oferece acesso otimizado ao banco de : oferece acesso otimizado ao banco de dados Oracle (versão 8i ou superior)dados Oracle (versão 8i ou superior)

ODBC providerODBC provider: oferece acesso à qualquer fonte de : oferece acesso à qualquer fonte de dados que tenha um driver ODBCdados que tenha um driver ODBC

Page 7: Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira enrique@facens.br Rodrigo Cristiano Silva rodrigo@facens.br

ADO.NET NamespacesADO.NET Namespaces

System.DataSystem.Data

System.Data.CommonSystem.Data.Common

System.Data.OleDbSystem.Data.OleDb

System.Data.SqlClientSystem.Data.SqlClient

System.Data.SqlTypesSystem.Data.SqlTypes

System.Data.OracleClientSystem.Data.OracleClient

System.Data.OdbcSystem.Data.Odbc

Page 8: Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira enrique@facens.br Rodrigo Cristiano Silva rodrigo@facens.br

Objetos do SQL Server Data ProviderObjetos do SQL Server Data Provider

SqlConnectionSqlConnection

Antes de recuperar ou atualizar dados, é necessário criar Antes de recuperar ou atualizar dados, é necessário criar uma conexão com a fonte de dadosuma conexão com a fonte de dados

Quando se cria um objeto Connection, é necessário Quando se cria um objeto Connection, é necessário definir um valor para sua propriedade ConnectionStringdefinir um valor para sua propriedade ConnectionString

A string de conexão para um objeto SqlConnection é A string de conexão para um objeto SqlConnection é bastante similar ao exemplo abaixo:bastante similar ao exemplo abaixo:

myConnection.ConnectionString = “Data myConnection.ConnectionString = “Data Source=localhost; Initial Catalog=Pubs; Integrated Source=localhost; Initial Catalog=Pubs; Integrated Security=SSPI”;Security=SSPI”;

Data Source: indica o nome do servidor onde a fonte Data Source: indica o nome do servidor onde a fonte de dados está localizadade dados está localizada

Initial Catalog: é o nome do banco de dados que a Initial Catalog: é o nome do banco de dados que a conexão acessaráconexão acessará

Integrated Security: indica que será usado o usuário Integrated Security: indica que será usado o usuário do Windows com o qual roda a aplicação Web para se do Windows com o qual roda a aplicação Web para se conectar ao SQL Serverconectar ao SQL Server

Page 9: Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira enrique@facens.br Rodrigo Cristiano Silva rodrigo@facens.br

Objetos do SQL Server Data ProviderObjetos do SQL Server Data Provider

SqlCommandSqlCommandObjetos Command representam comandos SQLObjetos Command representam comandos SQLPara usar um Command, é necessário definir as Para usar um Command, é necessário definir as propriedades CommandText e Connectionpropriedades CommandText e Connection

SqlDataReaderSqlDataReaderPermite recuperar informações diretamente do banco de Permite recuperar informações diretamente do banco de dadosdadosSuporta acesso Suporta acesso forward-onlyforward-only e e read-onlyread-onlyDeve ser a primeira escolha para acessos somente Deve ser a primeira escolha para acessos somente leitura, devido à sua natureza otimizada para esse tipo leitura, devido à sua natureza otimizada para esse tipo de acessode acesso

SqlDataAdapterSqlDataAdapterUsado no modelo de acesso à dados desconectadoUsado no modelo de acesso à dados desconectadoPode armazenar os quatro comandos básicos SQL em Pode armazenar os quatro comandos básicos SQL em suas propriedades: SelectCommand, InsertCommand, suas propriedades: SelectCommand, InsertCommand, UpdateCommand e DeleteCommandUpdateCommand e DeleteCommandDessa maneira, um único DataAdapter é usado para Dessa maneira, um único DataAdapter é usado para múltiplas tarefasmúltiplas tarefas

Page 10: Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira enrique@facens.br Rodrigo Cristiano Silva rodrigo@facens.br

DataSetDataSet

É um “banco de dados relacional na memória”É um “banco de dados relacional na memória”

É um dos principais objetos do modelo de acesso É um dos principais objetos do modelo de acesso à dados desconectadoà dados desconectado

Suas principais características são:Suas principais características são:Trabalha de forma desconectadaTrabalha de forma desconectada

Pode armazenar mais de uma tabelaPode armazenar mais de uma tabela

Pode manter relacionamentos entre tabelasPode manter relacionamentos entre tabelas

Permite manter a conexão com o bando de dados Permite manter a conexão com o bando de dados fechada, tendo em vista que possibilita a fechada, tendo em vista que possibilita a manipulação dos dados na memóriamanipulação dos dados na memória

Page 11: Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira enrique@facens.br Rodrigo Cristiano Silva rodrigo@facens.br

DataSetDataSet

Page 12: Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira enrique@facens.br Rodrigo Cristiano Silva rodrigo@facens.br

Acesso DiretoAcesso Direto

Page 13: Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira enrique@facens.br Rodrigo Cristiano Silva rodrigo@facens.br

Acesso DesconectadoAcesso Desconectado

Page 14: Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira enrique@facens.br Rodrigo Cristiano Silva rodrigo@facens.br

DataSet TipadoDataSet Tipado

Qual é a diferença entre um DataSet e Qual é a diferença entre um DataSet e um DataSet tipado?um DataSet tipado?

Um dataset tipado traz consigo toda a Um dataset tipado traz consigo toda a estrutura das tabelas, possibilitando o estrutura das tabelas, possibilitando o acesso às colunas do banco de dados acesso às colunas do banco de dados como se fossem propriedades do dataset, como se fossem propriedades do dataset, o que não deixa de ser, uma vez que um o que não deixa de ser, uma vez que um dataset tipado nada mais é do que uma dataset tipado nada mais é do que uma classe que o visual studio cria colocando o classe que o visual studio cria colocando o nome de cada coluna de cada tabela (real) nome de cada coluna de cada tabela (real) como uma propriedade desta classe (que como uma propriedade desta classe (que tem o mesmo nome do arquivo xsd tem o mesmo nome do arquivo xsd criado).criado).

Page 15: Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira enrique@facens.br Rodrigo Cristiano Silva rodrigo@facens.br

TableAdapterTableAdapter

A versão 2.0 do ADO.NET implementa algumas A versão 2.0 do ADO.NET implementa algumas inovações no acesso a dados. Uma das principais inovações no acesso a dados. Uma das principais é o TableAdapteré o TableAdapterDe forma simplificada, os TableAdapters fornecem comunicação entre a aplicação e o banco de dados, através da criação de uma camada (classe) para acesso aos dados

Mais especificamente, um TableAdapter conecta a um banco de dados, executa instruções SQL ou stored procedures e:

Retorna um DataTable preenchido com os dados ou,Preenche um DataSet ou DataTable com os dados retornados

Além disso, podem ser utilizados para enviar dados da aplicação para o banco de dados

Page 16: Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira enrique@facens.br Rodrigo Cristiano Silva rodrigo@facens.br

Representação do TableAdapterRepresentação do TableAdapter

Page 17: Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira enrique@facens.br Rodrigo Cristiano Silva rodrigo@facens.br

TableAdapterTableAdapter

Para criar um TableAdapter, é necessário Para criar um TableAdapter, é necessário criar antes um “DataSet Tipado”, que é um criar antes um “DataSet Tipado”, que é um DataSet com estrutura de dados DataSet com estrutura de dados fortemente definida através de um arquivo fortemente definida através de um arquivo .xsd (XML Schema).xsd (XML Schema)As classes dos TableAdapters são geradas em um namespace diferente, específico para cada Dataset

Por exemplo, se na aplicação existir um dataset chamado NorthwindDataSet, os TableAdapters associados com os DataTables poderiam estar no namespace NorthwindDataSetTableAdapters

Page 18: Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira enrique@facens.br Rodrigo Cristiano Silva rodrigo@facens.br

Acessando um TableAdapterAcessando um TableAdapter

Para acessar um TableAdapter específico através de código, é necessário instanciar um objeto do TableAdapter.

Exemplo:

// Instanciando um DataSet Tipado para armazenar os dadosNorthwindDataSet northwindDataSet = new NorthwindDataSet();

// Instanciando um TableAdapater para recuperar os dadosNorthwindDataSetTableAdapters.CustomersTableAdapter customersTableAdapter =new NorthwindDataSetTableAdapters.CustomersTableAdapter();

// Recuperando os dados do bancocustomersTableAdapter.Fill(northwindDataSet.Customers);

Page 19: Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira enrique@facens.br Rodrigo Cristiano Silva rodrigo@facens.br

Detalhes sobre o TableAdapterDetalhes sobre o TableAdapter

A classe TableAdapter não é parte da .NET Framework, e por isso, não é possível encontrá-la na documentação ou no Object Browser

Ela é criada em tempo de projeto através do wizard de criação do DataSet

O nome atribuído ao TableAdapter quando criado, é baseado no nome da tabela do banco de dados

Dessa forma, pode se dizer que um Dessa forma, pode se dizer que um TableAdapter é apenas a implementação TableAdapter é apenas a implementação de uma camada de acesso a dados, de uma camada de acesso a dados, utilizada para facilitar a manipulação das utilizada para facilitar a manipulação das informações provenientes do banco de informações provenientes do banco de dadosdados

Page 20: Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira enrique@facens.br Rodrigo Cristiano Silva rodrigo@facens.br

Métodos e Proriedades do TableAdapterMétodos e Proriedades do TableAdapter

Os seguintes métodos e propriedades são normalmente utilizados pelos TableAdapters:

MembroMembro DescriçãoDescrição

TableAdapter.FillTableAdapter.Fill Preenche o DataTable associado ao Preenche o DataTable associado ao TableAdapter com o resultado do TableAdapter com o resultado do comando SELECTcomando SELECT

TableAdapter.UpdateTableAdapter.Update Envia as alterações para o bancoEnvia as alterações para o banco

TableAdapter.GetDataTableAdapter.GetData Retorna um novo DataTable preenchido Retorna um novo DataTable preenchido com os dadoscom os dados

TableAdapter.InsertTableAdapter.Insert Cria uma nova linha no DataTableCria uma nova linha no DataTable

TableAdapter.ClearBeforTableAdapter.ClearBeforeFilleFill

Determina se um DataTable deve ser Determina se um DataTable deve ser limpo antes da chamada do método Filllimpo antes da chamada do método Fill

Page 21: Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira enrique@facens.br Rodrigo Cristiano Silva rodrigo@facens.br

ExercíciosExercícios

Criar um programa que possibilite Criar um programa que possibilite Cadastrar, alterar e excluir usuários de Cadastrar, alterar e excluir usuários de uma base de dados.uma base de dados.

Criar um sistema capaz de validar usuários Criar um sistema capaz de validar usuários através do banco de dadosatravés do banco de dados

Exibir informações retornadas do Exibir informações retornadas do TableAdapter (DataTable por exemplo) no TableAdapter (DataTable por exemplo) no GridViewGridView

Utilizar ObjectDataSource para realizar essa Utilizar ObjectDataSource para realizar essa tarefatarefa

Page 22: Tecnologias Web ADO.NET Enrique Pimentel Leite de Oliveira enrique@facens.br Rodrigo Cristiano Silva rodrigo@facens.br

BibliografiaBibliografia

TableAdapter overview. Disponível em: TableAdapter overview. Disponível em: http://msdn2.microsoft.com/en-us/library/http://msdn2.microsoft.com/en-us/library/bz9tthwx(VS.80).aspxbz9tthwx(VS.80).aspx

ASP.NET 2.0 - Data Access Layer com ASP.NET 2.0 - Data Access Layer com TableAdapter. Disponível em: TableAdapter. Disponível em: http://www.linhadecodigo.com.br/artigos_ihttp://www.linhadecodigo.com.br/artigos_impressao.asp?id_ac=1063mpressao.asp?id_ac=1063

Building a DAL using Strongly Typed Building a DAL using Strongly Typed TableAdapters and DataTables in VS 2005 TableAdapters and DataTables in VS 2005 and ASP.NET 2.0. Disponível em: and ASP.NET 2.0. Disponível em: http://weblogs.asp.net/scottgu/archive/20http://weblogs.asp.net/scottgu/archive/2006/01/15/435498.aspx06/01/15/435498.aspx