Acessando e exibindo dados com ADO.NET


Vamos neste artigo falar um pouco sobre o acesso a banco de dados usando ASP.NET com ADO.NET. Se você sabe como acessar uma base de dados usando o VB.NET vou lhe dar uma boa notícia : " para criar uma página ASP.NET que acesse um banco de dados você não vai ter que fazer alteração alguma , é praticamente igual ao código usado no VB.NET". Na verdade podemos fazer este serviço usando a linguagem C# também (vou mostrar isto em outro artigo) ; e ,  se você ainda não percebeu o código VB.NET é integralmente reutilizado em uma página ASP.NET.

Se você quer lembrar como acessar um banco de dados usando o VB.NET pode ler os seguintes artigos: (veja o link VB.NET para mais artigos)

Vou acessar uma base de dados Access usando ADO.NET com código VB.NET e exibir os dados de uma das tabelas em uma página ASP.NET.

Não vou me ater a teoria relacionada ao ADO.NET pois já fiz isto em artigos anteriores , vou apenas dar uma repassada nos conceitos básicos envolvidos na operação de acesso a base de dados. (Vou acessar a tabela Authors do banco de dados Biblio.mdb que esta na pasta c:\teste)

A primeira coisa a ter em mente é que como vamos criar uma página ASP.NET , e o arquivo com o código terá a extensão .aspx. Dei o nome acesso.aspx ao arquivo e usei o editor Bloco de notas para digitar todo o código VB.NET.

1- Temos que usar os namespaces System.Data e System.Data.OleDb pois vou acessar uma base de dados Access. ( As tags <% %> indicam que o código é código de script ) ; informamos a linguagem usada no código abaixo e indicamos que o código será rodado no servidor:

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script language="VB" runat="server">

 ....

2 - A primeira coisa a fazer para acessar uma base de dados usando ADO.NET é criar uma conexão. Veja abaixo o código que cria uma conexão com a base de dados Biblio.mdb.(O código será colocado no evento Load_Page que é o primeiro evento que ocorre quando a página for carregada):

sub Page_Load(sender as Object, e as EventArgs)

  Dim connString as String

  connString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:\teste\Biblio.mdb;"

  Dim objConnection as OleDbConnection
  objConnection = New OleDbConnection(connString)
  objConnection.Open() 'abre a conexao

   ......

3- Após abrir a conexão usando o provedor OLEDB.NET precisamos criar uma consulta para selecionar os dados que desejamos da tabela Authors. Vou Selecionar todos os registros cujo campo Au_ID seja menor ou igual a 13 . (<=)

A consulta SQL ficará então assim : "SELECT * FROM Authors Where Au_ID <= 13" e o código da consulta será :

'defina a consulta SQL
Dim strQuery as String = "SELECT * FROM Authors Where Au_ID <= 13"

'Cria um objeto Command
Dim objCommand as OleDbCommand
objCommand = New OleDbCommand(strQuery, objConnection)

.....

5- Vamos usar o objeto DataReader para ler os dados do banco de dados , para isto temos que criar e configura este objeto. Veja abaixo:

' define um OleDbDataReader
Dim objDataReader as OleDbDataReader
objDataReader = objCommand.ExecuteReader(CommandBehavior.CloseConnection)

.....

6- Basta agora exibir os dados em um controle DataGrid . Atribuimos ao DataGrid (DataSource) o objeto DataReader criado e fazemos a vinculação dos controles.(DataBind()):

' exibe os dados em um datagrid
dgDB.DataSource = objDataReader
dgDB.DataBind()

....

Obs: poderíamos também percorrer o DataReader usando um código como o abaixo:

While objDataReader.Read()
      objDataReader("Coluna")
End While

Para encerrar o arquivo temos que usar o seguinte código : Nele fechamos a conexão o DataReader e o script.

'fecha a conexao e o datareader
objDataReader.Close()

end sub
</script>
<asp:DataGrid id="dgDB" runat="server" />

O código completo do arquivo acess.aspx é o seguinte: Você pode copiá-lo usando o Bloco de notas , wordpad ou Visual Studio.NET.

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script language="VB" runat="server">

sub Page_Load(sender as Object, e as EventArgs)

Dim connString as String

connString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:\teste\Biblio.mdb;"

Dim objConnection as OleDbConnection
objConnection = New OleDbConnection(connString)
objConnection.Open()         'abre a conexao


'defina a consulta SQL
Dim strQuery as String = "SELECT * FROM Authors Where Au_ID <= 13"

'Cria um objeto Command
Dim objCommand as OleDbCommand
objCommand = New OleDbCommand(strQuery, objConnection)


' define um OleDbDataReader
Dim objDataReader as OleDbDataReader
objDataReader = objCommand.ExecuteReader(CommandBehavior.CloseConnection)

' exibe os dados em um datagrid
dgDB.DataSource = objDataReader
dgDB.DataBind()

'fecha a conexao e o datareader
objDataReader.Close()

end sub
</script>
<asp:DataGrid id="dgDB" runat="server" />

Nota : Perceba o código por trás da página definindo o DataGrid : <asp:DataGrid id="dgDB" runat="server" />

A seguir copie o arquivo acesso.aspx para o seu diretório virtual e execute a página acesso.aspx. O resultado será :

Simples !! Não é mesmo ??? . Em breve novos artigos sobre ASP.NET , aguarde...


José Carlos Macoratti