NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!
UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI
Olá Pessoal,
Dando continuidade aos nossos tutoriais, hoje começaremos a trabalhar com as classes de acesso a dados.
Acessar base de dados é geralmente o foco de todas as aplicações voltadas para a Web, de fato é o que torna o site propriamente dito como dinâmico. O grande problema é que para acessar dados nunca foi tão simples. Em sites que não usavam uma estrutura robusta de programação, não se enxergava a necessidade de rodar consigo uma base de dados, mas este conceito mudou. Hoje em dia, por mais simples que seja, o site necessita de um banco de dados, e o problema maior é que os designers por não possuírem conhecimento em programação, acabam utilizam códigos prontos que na maioria das vezes não resolvem o problema. Solução: Pagar um programador Free-Lancer para fazer o serviço!
Com base nisso temos o seguinte objetivo para o nosso tutorial:
Objetivo: Apresentar os métodos de acesso a dados através do ADO.NET , abordando conceitos iniciais sobre o controle Datagrid com a criação de um sistema de busca simples.
Criaremos um sistema de busca, simulando um site de vendas de produtos. Para tanto, não será necessário criar a base de dados, pois utilizaremos o famoso Northwind juntamente com o Microsoft Access.
Então,
Crie um arquivo do tipo ASPX e insira os seguintes controles com suas respectivas propriedades:
ID: txtbusca
ID: btnBuscar
Text: Buscar
ErrorMessage: Digite um valor para a busca
ControlToValidate: txtbusca
ID: lblResultado
ID: dgProdutos
Clique sobre o Datagrid, e na guia propriedades clique no link Autoformatação.
Escolha um modelo qualquer dos apresentados:
Veja como ficou:
Vamos aos códigos então.
Clique duas vezes sobre o botão btnBuscar para entrar no modo de edição de código para o evento Click deste botão.
A primeira coisa a se fazer é importar os namespaces que serão utilizados. Para este tutorial precisaremos do namespace System.Data e System.Data.OleDb.
O namespace System.Data compreende as classes para a manipulação dos dados juntamente com a classe de conexão.
O ADO.Net traz consigo algumas novidades sobre as classes de acesso a dados. Para o acesso ao SQL Server 7.0 ou superior foi desenvolvido o namespace System.Data.SqlClient, e para o Oracle, o namespace System.Data.OracleClient. Como vamos acessar o banco de dados Access, precisaremos do namespace System.Data.Oledb que também serve para o SqlServer, mas não convém usa-lo, uma vez que a performance da classe SqlClient é superior para este caso.
Abaixo da diretiva page declare os namespaces, como mostrado abaixo:
Agora vamos detalhar os procedimentos para a execução da busca.
Primeiramente, vamos armazenar a string de conexão dentro de uma variável global chamada banco.
Public banco as string=”Provider=Microsoft.Jet.OleDb.4.0;Data Source=” & Server.MapPath(“Northwind.mdb”)
Obs: Procure colocar o arquivo do banco de dados dentro da mesma pasta da aplicação.
Agora vamos aos objetos, primeiramente com o objeto de conexão.
Dim conn as new OleDBConnection(banco)
Nesta declaração é criada uma nova instância do objeto OledbConnection, como argumento é passado o caminho do banco de dados.
Agora implementaremos a classe que enviará os comandos ao banco de dados.
Dim cmd as new OleDBCommand()
cmd.CommandText=”Select NomeDoProduto, PreçoUnitário from Produtos where NomeDoProduto like ‘”& txtbusca.text & “%’ “
cmd.Connection=conn
Na propriedade CommandText deve ser passado a string Sql que fará a consulta ao banco de dados. A propriedade Connection indica qual conexão será utilizada para enviar o comando.
O ADO.Net permite trabalhar com dois objetos para a manipulação dos dados. O DataReader e o Dataset. O DataReader permite a leitura dos dados e também a manipulação de atualização e exclusão, porém, é necessário que sempre esteja conectado ao banco de dados, ao contrário do Dataset, que permite a manipulação de dados desconectado da fonte.
Neste tutorial não abordaremos detalhes destes dois objetos, em breve estaremos entrando em mais detalhes sobre este assunto.
Vamos agora abrir o banco de dados e criar o DataReader para ler os dados.
Conn.Open()
Dim dr as OleDBDataReader
Dr=cmd.ExecuteReader()
Veja que o objeto DataReader armazena o método de execução do objeto Command.
Agora vamos tratar a execução da busca com o bloco if.
If dr.Read then
DgProdutos.DataSource=dr
DgProdutos.DataBind()
Else
LblResposta.Text=”Sua busca não retornou resultado!"
End if
Neste trecho definimos que se o DataReader possuir registros (dr.Read), o Datagrid dgProdutos irá recebe-lo como fonte de dados, e logo depois será renderizado no navegador através do método Databind().
Agora temos que organizar os eventos, visto que os códigos acima não foram designados à execução de procedimento algum. Então, o código será organizado da seguinte maneira:
‘Rotina para efetuar a busca
Sub EfetuarBusca()
Dim conn as new OleDBConnection(banco)
Dim cmd as new OleDBCommand()
cmd.CommandText="Select NomeDoProduto,PreçoUnitário from Produtos where NomeDoProduto like '"& txtbusca.text &"%'"
cmd.Connection=conn
conn.Open()
Dim dr as OleDBDataReader
dr=cmd.ExecuteReader()
if dr.Read then
dgProdutos.DataSource=dr
dgProdutos.DataBind()
Else
lblResultado.Text="Sua busca não retornou resultado!"
End if
End Sub
‘Chamando a função para efetuar a busca
Sub btnBUscar_Click(sender As Object, e As EventArgs)
EfetuarBusca()
End Sub
Veja a listagem do código completo:
Pressione F5 para testar.
Ok, funcionou e bem.
Ficamos por aqui. Hoje você conheceu a facilidade de acessar dados com ADO.Net e exibi-los através do WebControl Datagrid. Nos próximos tutoriais, abordaremos mais assuntos relacionados ao acesso a dados com ADO.Net.
Lano de Castro
“Se não se pode vencer pelo talento, vença pelo esforço”