Você está na página 1de 69

WEB02

ACESSO BANCO DE
DADOS
EM ASP.NET 2.0
1

INTRODUO

Introduo
Aplicativos

web acessam com muita


frequncia fontes de dados para o
armazenamento e recuperao de
informaes. Na plataforma .NET existem
vrias formas de se fazer isso, veremos a
seguir as tcnicas mais usadas:
DataSource Controls
ADO.NET
DataSet Tipado e TableAdapters
Classes de Negcio
3

Introduo
Diagrama

do Banco de Dados

ARQUIVO TNS NAMES


#Sistemaco Desenv
SISTEMACO_DESENV.WORLD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.5.9.74)(PORT = 1521))
(CONNECT_DATA = (SID = CCD1OST1))
)

Introduo
Server

Explorer

Permite visualizar o banco de dados


Criando uma Conexo
1.Clique com o boto direito em Data
Connections e selecione opo Add
Connection...
2.Ser exibida uma tela Choose Data Souce
com uma lista de opes de fontes de dados,
selecione Microsoft SQL Server.
3.Na dropdownList abaixo ser exibido as
opes de Provides disponveis para a fonte
de dados selecionada. Selecione .NET
Framework Data Provider for SQL Server.
Aperte Continue
4.Ser exibida a tela Add Connection.
- Digite o nome ou IP do servidor: 192.168.0.1
- Selecione o tipo de autenticao: SQL Server
- Digite o usurio do banco de dados:
alunocurso
- Digite a senha: alunocurso
- Selecione o banco de dados: Northwind_br
- Para finalizar aperte o boto para testar a
conexo e depois OK.

Introduo
Visualizando

os campos das tabelas

Exibindo as Propriedades
1.Expanda os itens da conexo e depois da
tabela.
2.Ser exibido todas as tabelas.
3.Expanda os itens da tabela. Ser possvel ver
todos os campos.
4.Para saber mais detalhes sobre o campo,
clique com o boto direito do mouse e
selecione propriedades.

DATASOURCE CONTROLS

DataSource Controls
Normalmente

voc vai criar cdigos para


acessar dados usando as classes do ADO.NET,
porm o ASP.NET permite voc fazer isso
declarativamente, sem a necessidade de criar
cdigo nenhum.

ASP.NET possui dois tipos de Server Controls


que permitem o uso do modelo de acesso a
dados declarativo. Esses controles gerenciam
internamente todas as tarefas necessrias
para o acesso e exibio dos dados, so eles:
Data Souce Controls
Data-Bound Controls
8

DataSource Controls

Data Souce Controls


So responsveis por se conectar ao banco de
dados. Esses controles no geram nenhuma
interface visual, em vez disso ele age como
intermediador entre uma fonte de dados (banco de
dados, classe de negcio ou arquivo XML) e os
controles de interface da pgina.
O ASP.NET disponibiliza os seguintes datasources:
AccessDataSource Banco de dados do Microsoft Access
XmlDataSource Arquivo XML
SiteMapDataSource Arquivo do tipo Sitemap
ObjectDataSource Classes de Negcio.
SqlDataSource - Provedores de dados gerenciados do
ADO.NET, que fornecem acesso a bancos de dados
Microsoft SQL Server, OLE DB, ODBC ou Oracle.
9

DataSource Controls

Data-Bound Controls
Os Data-Bound Controls so responsveis por renderizar
os dados no formato de tags html conforme a
requisio do browser. Esses controles se ligam aos
DataSource Controls e automaticamente buscam os
dados no momento apropriado no ciclo de vida da
pgina. Eles se conectam aos DataSources Controls
atravs da propriedade DataSourceID.
Os data-bound controls possuem tambm a propriedade
DataSource para atribuio de colees de dados e o
mtodo DataBind para vinculao dos dados em tempo
de execuo. Veremos isso com mais detalhes adiante.
O ASP.NET disponibiliza os seguintes Data-Bound
Controls:
BulletedList, CheckBoxList, DropDownList, ListBox,
RadioButtonList, Repeater, DataList, DetailsView, FormView,
GridView, Menu e TreeView
10

DataSource Controls
Tratando

Excees de Pgina

Como no haver codificao para o acesso a dados


importante criarmos um tratamento de erros a
1.nvel
Crie um de
novo pgina.
website chamado cursoweb02
2. Crie um webform chamado aula1.aspx
3. Quando uma exceo acontece, o evento Error da
Pgina acionado. Iremos programar neste evento.
4. Para capturar o ltimo erro, declare um objeto do tipo
Exception e atribua a ele o mtodo
Server.GetLastError
5. Com o erro capturado exiba a mensagem em algum
lugar na tela
6. Execute o mtodo ClearError para limpar o erro da
memria.

11

DataSources
Configurando

um SqlDataSource

1. Arraste um SqlDataSource, localizado na


categoria Data, para dentro do webform
2. Ser exibido o controle na tela juntamente
com seu SmartTag, clique em Configure
Data Source
3. Na tela configure DataSource voc pode
criar uma nova conexo ou usar uma
existente. Vamos abrir a dropdownlist e
selecionar a conexo que criamos
anteriormente. Repare que ser exibido a
String de Conexo com o banco de
dados.
4. Aperte o boto Next

12

DataSources
Configurando

um SqlDataSource

1. Ser exibida uma nova tela perguntando se


deseja salvar a String de Conexo com o banco
de dados no web.config. Marque que sim e d
um nome a essa ConectionString. Isso ser
importante para que sempre que precisarmos
acessar o banco de dados termos essa
informao guardada em um nico local.
2. D o nome: Treinamento
3. Aperte o boto Next.
4. Ser exibida uma tela para voc optar se vai
usar uma instruo SQL customizadas, uma
Stored Procedure ou se vai especificar direto
o nome da tabela e campos que deseja
exibir.
5. Selecione a segunda opo, escolha a tabela
STATUS_REQUISICAO_SERVICO e selecione
todos os campos.
6. Aperte Next
7. Para testar o select aperte o boto Test Query
8. Aperte Finish

13

DataSources
Cdigo

Gerado Automaticamente

1. Abra o arquivo web.config


2. Repare que foi adicionada uma entrada com o
nome de Treinamento com as configuraes
da nossa conexo.
3. Na pgina aula1.aspx clique no modo de
exibio Source.
4. Repare que o controle guarda todas as
instrues SQL e os parmetros necessrio
para manipular a tabela.

14

DataSources
Vinculando

SqlDataSource s Listas
O que ser
Exibido

1. Clique no SqlDataSource e defina sua


propriedade ID com o nome
SqlDataSourceStatus
2. Arraste para tela os seguintes controles:
- DropDownList
- RadioButtonList
3. Clique no SmartTag e escolha a opo Choose
DataSource
4. Ser exibida uma tela onde ir selecionar nosso
SqlDataSource
5. Nas listas abaixo voc dever selecionar qual
campo ser exibido e qual ser retornado
internamente pelo controle.
6. Selecione DEscricao na primeira lista (display)
e id_satatus (value) na segunda.
7. Execute a pgina para ver o resultado.

O que ser
Retornado

15

DataSources
Vinculando

SqlDataSource ao GridView

1. Arraste um GridView para o


webform
2. Clique no SmartTag e na lista
Choose DataSource selecione
nosso SqlDataSourceStatus
3. Clique na opo Auto Format... e
escolha o scheme Professional
(ou qualquer outro)
4. Marque as opes:
- Paging Paginao
- Sorting Ordenao
- Editing Edio
- Deleting Excluso
- Selection Seleo
5. Execute a pgina e veja o
resultado.

16

DataSources
SqlDataSource

com Parmetros

1. Crie acima do GridView os


seguintes controles:
- Label: text=Protudo
- TextBox: id=txtProduto
- Boto: text=Pesquisar
2. Clique no SmartTag do
SqlDataSourceStatus e
selecione a opo Configure
DataSouce
3. Na configurao da instruo SQL
aperte o boto para definirmos a
clusula WHERE.
4. Na tela seguinte escolha as
seguintes opes:
- Column: Produto
- Operator: Like
- Source: Control
- Control ID: txtProduto
5. Aperte o boto Add e depois OK

17

DataSources
Resultado

18

ADO.NET

19

ADO.NET

ADO.NET separou em classes distintas, componentes


para acesso a dados e componentes para
manipulao de dados

Os componentes responsveis pelo acesso a dados


so os Providers. Eles so encarregados pela
conexo com uma fonte de dados, execuo de
comandos e a recuperao das informaes.

Uma vez que o Provider busca os dados, eles podem


ser processados diretamente ou armazenados em um
Dataset para a manipulao dos dados.

O Dataset pode ser usado com um Provider, ou de


forma independente, com informaes inseridas pelo
aplicativo ou arquivos XML.

As classes do ADO.NET so encontradas no


namespace System.Data

ADO.NET
DataSet

O DataSet o componente central no


cenrio dos dados desconectados do
ADO.NET. Ele a representao em
memria do banco de dados.

21

ADO.NET
Criando

um DataSet Manualmente

1. Crie a pgina aula2.aspx


2. Solicite o cdigo ao lado ao instrutor
e o copie no mtodo Load da pgina
3. Importe o namespace System.Data
4. Instancie o DataSet
5. Instancie o DataTable j passando
como parmetro o nome da tabela.
6. Adicione a tabela coleo de
DataTables do DataSet usando o
mtodo Add.
7. Instancie um DataColumn para cada
coluna do seu DataTable j passando
como parmetros o nome da coluna
e o tipo de dados.
8. Adicione a coluna coleo de
colunas do DataTable usando o
mtodo Add
9. Repita esse processo para adicionar
quantas colunas quiser
10.Para adicionar uma linha ao nosso
DataTable declare o DataRow e sua
instancia ser criada a partir do
mtodo NewRow do DataTable
11.Atribua as colunas o valor que
desejar

22

ADO.NET
Atribuindo

dados aos Data-Bound

Controls
Conforme comentando anteriormente os Data-Bound Controls
expem a propriedade DataSource e o mtodo DataBind para
a vinculao de colees. A propriedade DataSource pode
receber vrios tipos de colees de dados como DataSets,
DataTables e DataReaders. necessrio executar o mtodo
1. Arraste um DropDownList para a
DataBind
que o controle renderize as informaes no
tela e defina apara
propriedade
id=ddlUsuarios
browser.
2. No Load da pgina, depois de criar o
DataSet, defina as proprieades
DataTextField e
DataValueField com o nome das
colunas do DataSet que desejar
3. Atribua o DataSet a propriedade
DataSource do ddlUsuarios
4. Execute o mtodo DataBind do
ddlCargos.
5. Rode a pgina.

23

ADO.NET

Providers
Eles so encarregados pela conexo com uma fonte
de dados, execuo de comandos e a recuperao
das informaes.
Existem 4 providers nativos do .Net Framework:
1. .NET Framework Data Provider for SQL Server
Para o Microsoft SQL Server verso 7.0 ou superior. Usa o
namespace System.Data.SqlClient
2.

.NET Framework Data Provider for OLE DB


Para fontes de dados acessadas atravs de OLE DB. Usa o
namespace System.Data.OleDb

3. .NET Framework Data Provider for ODBC


Para fontes de dados acessadas atravs de ODBC. Usa o
namespace System.Data.Odbc
4. .NET Framework Data Provider for Oracle
Para o Oracle verso 8.1.7 ou superior. Usa o namespace
System.Data.OracleClient
24

ADO.NET
Principais

Classes que compem um Provider

Connection Estabelece a conexo com uma


determinada fonte de dados.
Command Executa comandos em uma fonte de
dados. Podem ser executados em um escopo de
transao. Possui uma propriedade Parameters
para guardar os parmetros associados ao
comando.
DataReader Armazena dados recuperados de
uma fonte de dados, mas limitado somente para
Leitura e navegao para frente (forward-only).
DataAdapter Responsvel em preencher um
DataSet com informaes vindas de uma fonte de
dados.
25

ADO.NET
Connection
Representa a conexo com a fonte de dados
Classes de acordo com o tipo de Provider: OleDBConnection,
OdbcConnection, SqlConnection e OracleConnection
Principais propriedades e mtodos:
ConnectionString String de conexo com o banco de dados.
Utilize o ConfigurationManager.ConnectionStrings para
recuperar essa informao do web.config.
Open Abre a conexo com o banco de dados
BeginTransaction Inicia uma transao
Close Fecha a conexo com o banco de dados

26

ADO.NET
Criando

uma Connection

1. Arraste os seguintes controles


para o webform:
- Boto: id=btnConectar;
text=Conectar
- Label: id=lblStatus; text=
2. Abra o evento clique do boto
3. Instancie uma conexo
4. Atribua a propriedade
ConnetionString a nossa
connectionString guardada no
web.config. Para fazer isso
voc vai usar a classe
ConfigurationManger.
5. Abra a conexo
6. Crie uma linha comentada
marcando o local onde ficar
a codificao para efetuar os
comandos na fonte de dados
7. Feche a conexo
8. Exiba na tela uma
mensagem na tela de que os
comandos foram concludos.

27

ADO.NET
Command
Representa um instruo SQL ou Stored Procedure para ser executada
em uma fonte de dados
Classes de acordo com o tipo de Provider:
OleDBCommand,OdbcCommand,SqlCommand e OracleCommand
Principais propriedades e mtodos:
Connection Conexo com o banco que ser usada
CommandType Tipo de Comando (Text, StoredProcedure ou
TableDirect)
CommandText Instruo SQL ou nome da StoredProcedure
Transaction Recebe o objeto de transao na qual o comando
ser executado.
ExecuteReader Executa o comando e retorna um DataReader
ExecuteScalar - Executa uma query e retorna a primeira coluna
e linha do resultado
ExecuteNonQuery - Executa um comando e retorna quantos
registros foram afetados.
28

ADO.NET
Criando

um Command

1. No local que separamos para


codificao, instancie um
OracleCommand
2. Atribua a conexo ativa a
propriedade Connection do
Command

No esquecer de adicionar a
namespace
System.Data.OracleClient

3. Defina o CommandType como


do tipo Text
4. Atribua a instruo SQL a
propriedade CommandText
5. Execute o mtodo
ExecuteReader
6. Atribua o resultado a um objeto
OracleDataReader
7. Popule um GridView com o
resulado desse objeto.

29

ADO.NET
DataReader

Armazena dados recuperados de uma fonte de


dados.
Muito veloz, mas somente para Leitura e
navegao para frente (forward-only)
Classes de acordo com o tipo de Provider:
OleDBDataReader, OdbcDataReader, SqlDataReader
e OracleDataReader

30

ADO.NET
DataAdapter
Responsvel em preencher um DataSet ou DataTable com
informaes vindas de uma fonte de dados. O DataSet
independente do DataSource e ele pode ter dados de mltiplos
DataSources diferentes; esses DataSources so controlados
atravs do DataAdapter.
Classes de acordo com o tipo de Provider: OleDBDataAdapter,
OdbcDataAdapter, SqlDataAdapter e OracleDataAdapter
Principais propriedades e mtodos:
SelectCommand Command que ser usado no mtodo Fill.
Pode ser atribudo no contrutor da classe.
Fill Preencho o DataSet ou DataTable que recebe por
parmetro

31

ADO.NET
Usando

o DataAdapter

1. Adapte o cdigo anterior para usar um DataSet


em vez de um DataReader
2. Instancie DataSet com o nome de dsCargos
3. Instancie um OracleDataAdapter com o nome de
meuDataAdapter passando como parmetro
oOracleCommand que iremos usar para preencher
o DataSet
4. Chame o mtdo Fill passando como parmetro o
DataSet que queremos preencher.
5. Atribuia o DataSet ao GridView

32

ADO.NET
Parameter
Responsvel por armazenar os parmetros que sero usados nos
Commands.
So muito importantes para evitar SQL Injection.
Classes de acordo com o tipo de Provider: OleDBParameter,
OdbcParameter, SqlParameter e OracleParameter
Os parmetros na instruo SQL do Command sero substitudos por ?,
no caso do Provider for OLE DB e @nomeparamentro, no caso do SQL
Server
Principais propriedades e mtodos:
Direction Se o parmetro de entrada, sada, bidirecional ou o
retorno de uma StoredProcedure.
ParameterName Nome do parmtro
Type Tipo de dado
Value - Valor
33

ADO.NET
Usando

o Parameter

1. Arraste um GridView para a pgina, altere o ID


para GridViewClientes e arrume os controles
para que fiquem posicionados conforme a
imagem ao lado.
2. Altere a propriedade AutoPostback do
ddlCargos para True
3. Altere o Load da pgina para carregar o cdigo
inicial da ddlCargos somente se no for um
postback. Verifique a propriedade da pgina
usando o cdigo If not Page.IsPostBack
4. Abra o evento
ddlCargo_SelectedIndexChanged clicando
duas vezes sobre o dropdownlist. Iremos
copiar o cdigo que inserimos no boto
btnConectar para este evento e fazer as
alteraes para efetuar uma pesquisa de
clientes por cargo.
5. Altere o CommandText para a nova Instruo
Sql:
Select * from clientes where cod_cargo =
@cod_cargo. Repare o nome do objeto
parmetro que teremos que criar no Command.
6. Instancie um objeto OracleParameter para
criar o parmetro e definas as seguintes
propriedades:
- Direction=Input; DbType=String
- ParameterName=Cod_Cargo
- Value=ddlCargo.SelectedValue

34

ADO.NET
Usando

o Parameter

35

ADO.NET
Resultado

DATASET TIPADO

37

DataSet Tipado
DataSet

Tipado

O DataSet Tipado uma classe que deriva da


classe do DataSet, herda todos seus mtodos,
eventos e propriedades.
Adicionalmente o DataSet Tipado possui
eventos, mtodos e propriedades fortemente
tipadas, isso significa que voc pode acessar as
tabelas e colunas diretamente pelos seus nomes,
em vez de passar como parmetro por uma
string.
Alm de melhorar a leitura do cdigo, permite
que o intellisense do Visual Studio complete o
cdigo para voc ao referenci-lo, isso previne
contra erros de digitao somente detectados
em tempo de execuo.
38

DataSet Tipado
TableAdapters

Voc pode pensar no TableAdapter como um


DataAdapter com seu prprio objeto de conexo e a
habilidade de conter mltiplas queries. Cada query
exposta ao aplicativo atravs de mtodos
pblicos. Tipicamente contm os mtodos Fill e
Update, para buscar e atualizar dados
respectivamente.
Enquanto o DataAdapter uma das principais
classes dos .NET Framework Data Providers, o
TableAdapeter uma classe gerada separadamente
em tempo de desenho atravs do DataSet
Designer. Voc pode cri-lo no mesmo momento
que estiver criando os DataSets Tipados atravs do
Configuration Wizard ou arrastando do DataBase
Explorer para dentro do DataSet Designer.
39

DataSet Tipado
Criando

um TableAdapter

1. Clique com o boto direito na raiz do seu


projeto, clique em Add ASP.NET
Folder e selecione App_Code
2. Clique com o direito do mouse em
App_Code e selecione Add New
Item
3. Selecione a opo DataSet e d o nome
de DsStatus
4. Automaticamente abrir o TableAdapter
Configuration Wizard
5. Ser apresentado a conexo que est
armazenada no seu web.config, aceite-a
e aperte ao boto Next
6. Ser perguntado como o TableAdapter
acessar o banco de dados. Selecione Use
SQL Statments e aperte Next
7. Na tela seguinte , na caixa de texte digite
a instruo SQL: Select * from
status_requisicao_servico
8. Aperte a opo Advanced Options e
marque as opes: Generete Insert,
Update e Delete; Refresh the data
table. Aperte OK
9. Aperte Next
10.Nesta tela ser apresentado se deseja
criar os mtodos de preencher um
DataTable (Fill), Retornar um

40

DataSet Tipado
Usando

um ObjectDataSource

O ObjectDataSource permite ligar um Data-Bound Control a classes de negcio


de forma declarativa.

1. Crie um novo webform chamado


aula3.aspx
2. Arraste um ObjectDataSouce para a tela
e clique em Configure DataSource
3. Selecione o TableAdapter que criamos
anteriormente, ele estar com o nome de
dsClientesTableAdapters.clientesTabl
eAdapter. Aperte Next
4. Voc vai reparar que ele vai mapear as
operaes de Select, Update, Insert e
Delete aos mtodos do TableAdapter.
5. Aperte Finish
6. Arraste um GridView para o webform,
escolha o estilo Professional no
Autoformat e em Choose DataSource
selecione o que acabamos de criar.
7. Voc vai perceber que ser disponibilizado
todas as funcionalidades que vimos
atravs do SQLDataSource. Selecione
todas elas.
8. Execute a pgina

41

DataSet Tipado
Criando

Nova Query no TableAdapter

1. Abra o DataSet dsStatus


2. Clique com o direto do mouse no
cabealho do TableAdapter
3. Selecione Add Query
4. Ser exibido o wizard. Selecione a
opo use SQL Statment
5.

Escolha a primeira opo: Select


com retorno de linhas

6. Digite no campo a instruo SQL:


SELECT * FROM
status_requisicao_servico
WHERE nm_descricao_status
LIKE '%' + :nome + '%
7. Aperte Next
8. Digite o nome FillByNome para o
mtodo de preenchimento de
DataTable e GetDataByNome para
o de retorno de um DataTable.
9. Aperte Finish
10.Selecione o novo mtodo, v a
janela de propriedades e clique
no boto .... Altere o tipo do
parmetro para String

42

DataSet Tipado
Usando

o TableAdapter via Cdigo

1. Arraste para baixo do gridview do exemplo


anterior os seguintes controles:
- TextBox: id=txtPesquisa
- Boto: id=btnPesquisar; text=Pesquisar
- GridView: id=GridViewPesquisa;
AutoFormat=ColoFull
2. Abra o evento btnPesquisa_Click
3. Instancie um objeto dsTableAdapter do tipo
dsStatusTableAdapter
4. Atriba ao DataSource da Gridview o mtodo
GetDataByNome passando como parmetro o
valor preenchido na txtPesquisa. Depois
execute o DataBind.
5. Execute a pgina.

43

DataSet Tipado
Usando

o DataSet Tipado via Cdigo

1. Arraste um boto para baixo da ltima GridView e


altere as seguintes propriedades:
- Boto: id=btnCriaDataSet; text=Cria DataSet Tipado
- Label: id=lblResultado; text=
2. Crie um Sub com o nome de ProcessaDados que
recebe como parmetro um DataRow tipado com o
nome de RowProcessar.
3. Programe esta sub para atribuir ao label os dados do
cliente.
4. Abra o evento btnPesquisa_Click
5. Instancie um objeto DataSetClientes do tipo
dsClientes
6. Declare um DataRowClientes do tipo
DsClietnes.clienteRow e instancie ele chamando o
mtodo NewclientesRow
7. Preencha o DataRow com informaes do cliente e
passe-o como parmetro para a sub ProcessaDados

44

DESENVOLVIMENTO EM
CAMADAS

45

Classes de Negcio
Desenvolvimento

em Camadas

Camadas Lgicas (Layers)


Separao Lgica do cdigo em diferentes camadas
de acordo com responsabilidades
Camada de Apresentao
Camada de Negcios
Camada de Acesso a Dados

Normalmente as classes esto separadas em


diferentes Projetos
Reaproveitamento de cdigo
Fcil manuteno.
46

Classes de Negcio
Camada

de Acesso a Dados

Responsvel por interagir com o Banco de Dados


e instanciar as respectivas classes de acesso.
Camada

de Regras de Negcio

Responsvel por definir o que solicitar e inserir no


banco. Ex.: Classe de Negcios Cliente, Cargos e
etc...
ORM - Object-relational mapping
Camada

de Apresentao

Responsvel por receber as informaes externas


e interagir com o usurio. Ex.: Pgina Web,
Windows Form, Pgina Mobile, etc...
47

CLASSE DE ACESSO A
DADOS

48

Classe de Acesso a Dados


Microsoft

Enterprise Library

Enterprise Library uma coleo de componentes


de software (os conhecidos application blocks)
criada para auxiliar no desenvolvimento das
atividades comuns de um projeto de software (tais
como logging, validao, caching, tratamento de
erros e muitos outros).
Os Application blocks so como guias de boas
prticas de desenvolvimento recomendadas pela
Microsoft, incluindo cdigo fonte e documentao.
Como no poderia ser diferente, os
desenvolvedores podem estender ou modificar o
cdigo de acordo
com a necessidade.
Documentao e Download:
Documentao e Download:

http://msdn.microsoft.com/en-us/library/cc467894

49

Classe de Acesso a Dados


Data

Access Application Block

O Data Acess Application Block simplifica


vrias tarefas de acesso a dados. As
funcionalidades do ADO.NET so
encapsuladas em mtodos que tornam as
suas classes muito fceis e produtivas de
se usar.

50

Classe de Acesso a Dados

Data Access Application Block - DAAB


O DAAB simplifica vrias tarefas de acesso a dados que
em um aplicativo so executadas freqentemente,
como:
Definir o banco de dados
Definir a string de conexo
Definir o provedor
Abrir a conexo
Definir a forma de acesso: comandos SQL ou Stored Procedures
Definir comandos
Executar comandos
Fechar a conexo

As funcionalidades do ADO.NET so encapsuladas em


mtodos que tornam as suas classes muito fceis e
produtivas de se usar.
51

Classe de Acesso a Dados


Banco

de Dados Default

Para cada conexo possvel definir qual


ConnectionString do web.config se deseja usar,
mas possvel definir uma padro para no
precisar informar toda hora caso utilize somente
uma.
Basta adicionar no web.config a seguinte
referencia:

Solicite o cdigo do web.config ao instrutor

52

Classe de Acesso a Dados


Efetuando

Pesquisas com Parmetros

TextBox
ID = txtPesquisa
Button
ID = btnPesquisar
GridView
ID = GridViewPesquisa
Label
Id = lblResp
Visible = False

53

Classe de Acesso a Dados


Efetuando

Incluso

TextBox1
ID = txtCodigo
TextBox2
ID = txtNome
Label
ID = lblMensagem
Text =
Button
ID = btnIncluir

54

Classe de Acesso a Dados


Efetuando

Update
Button
ID = btnAtualizar

Efetuando

Excluso
Button
ID = btnExcluir

55

CLASSES DE NEGCIO

56

Classes de Negcio

Classe de Negcio
Propriedades
Campos da Tabela
SGBD
Registros
DataSet

Mtodos
LimpaPropriedades()
InsertQuery()
ProxCod()
UpdateQuery()
DeleteQuery()
SelectQuery()
MontaWhere()
AdicionarParamentrosWhere()
NothingIfNull()
57

Estrutura de Projeto Padro MVC

Dentro da pasta reservada App_code, colocaremos 3


subPastas (Controller/Data/Model).
Essas SubPastas representam as diferentes camadas da
aplicao.
Segue um breve resumo dessas camadas:
Controller: Camada onde ficam os controladores das pginas.
Cada pgina da aplicao dever ter um controller associado.
Data: Onde ficam os DataSets tipados utilizados pela aplicao.
Model: Essa camada representa o Negcio da aplicao, nela
que ficaro as classes de negcio da aplicao

Classes de Negcio
Exemplos

de Classe de Negcio

Classes dentro do
Controller

Classes dentro da
Classe de Negcio

59

Classes de Negcio
Mtodo Salvar no Controller
chamando o Mtodo Inserir
da Classe de Negcio
Entrevista

60

Classes de Negcio
Mtodo Deletar.. no Controller chamando o
Mtodo Apagar... da Classe de Negcio
Entrevista.
Observem que neste caso, o Mtodo
Apagar.. No utiliza parmetros, ao invs
disso ele concatena na query o valor
passado pelo Controller.
Essa tambm uma possibilidade, apesar
de no ser a melhor escolha. Sempre que
possvel, utilizem paramtros. mais
seguro.

61

Classes de Negcio
Efetuando

Operaes em Camadas

Aproveitando o nosso exemplo, vamos criar o


procedimento em camadas utilizando Controller e classe
de Negcio.
Faremos os mtodos Update e Delete.
Primeiro, vamos adicionar as 3 pastas ( Data / Controller /
Model) dentro da pasta App_Code.
Criamos agora um Controle com o nome de
cTreinamento e adicionamos na pasta Controller.
Criamos agora uma Classe de Negcio nTreinamento e
adicionamos na pasta Model.

62

Classes de Negcio
Negcio

Crie dois Mtodos na classe de Negcio


nTreinamento.Alterar e Listar, conforme descrito ao
lado.

63

Classes de Negcio
Controller
Adicione os NameSpaces

Crie dois mtodos: Listar e Alterar, conforme


a imagem ao lado.

64

Classes de Negcio
Pgina
Na pgina:
Carregue uma comboBox com os Status da Tabela.
Crie dois botes: Alterar e Excluir

Adicionem essas NameSpaces.

Adicione o Controlador da Pgina conforme descrito ao


lado.
No esquea da Instruo (if (!IsPostBack), que significa:
Quando no for um PostBack.
Carregue a Combo

65

Classes de Negcio
Pgina

Na pgina:
D dois cliques no boto Alterar em modo Design, e o
Visual Studio cria automaticamente o evento Click do
boto no modo Server da pgina. Programeo conforme
o cdigo abaixo.

66

PUBLICANDO O WEBSITE

Introduo ao C#
Copy

Web Site

Copie os dados para o servidor de aplicao atravs de uma


conexo FTP.
1
2

Clique em Connect,
para escolher o destino

A
esquerda:
Arquivos
de sua
aplicao

3
A direita:
Arquivos
de
destino

68

FIM

Muito Obrigado !
Dvidas:
doria@brasilcenter.com.br

69

Você também pode gostar