ASP.NET - Conexões , Conexões , conexões...


Existem basicamente dois modos de acesso a dados em ASP.NET , usando ADO.NET é claro , : DataSet e DataReader.

Existem no entanto diversos provedores .NET , dentre eles os mais usados são os provedores usados para acessar uma base de dados Access e SQL Server. São os provedores : OleDB e SqlClient .NET. providers.

Fazendo uma combinação simples temos então quatro maneiras diferentes de realizar a conexão via código em páginas ASP.NET usando ADO.NET , ei-lás:

1 - SQL Server - DataSet
2 - SQL Server DataReader
3 - OleDB - DataSet
4 - OleDb DataReader

Em todos os casos teremos as seguintes etapas:

  1. Declaração dos imports para o namespace System.Data usando o respectivo provedor de dados gerenciado
  2. Definição da string de conexão : Dim strConn as string = < a string para cada tipo de base de dados >
  3. Definição do objeto conexão usando a string definida : Dim conexaoBD as New XXXConnection(strConn)
  4. Definição da string para consulta SQL : "Select (lista de campos) from (nome_da_tabela)"
  5. Abrir a conexão (Aqui existem algumas diferenças que você pode ver no código abaixo)
  6. Obter o resultado e vincular a um componente adequado para exibição

Só para lembrar , você usa um DataReader para exibir de forma rápida um conjunto de registros somente-leitura que você não pode paginar. Um DataSet exige mais recursos do ambiente mas fornece mais possibilidades no tratamento do conjunto de dados.

Vamos então mostrar como fazer cada uma destas conexões a título recordação pois cada uma delas já foram objetos de diversos artigos. Ao trabalho...

Vou usar a tabela Customers do banco de dados Northwind do SQL Server 2000 e a tabela Customers do banco de dados Northwind.mdb.

1- Conexão com SQL Server usando DataSet

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SQLClient" %>

<script language="VB" runat="server">

Sub Page_Load(Source as Object, E as EventArgs)

Dim strConn as string = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind"
Dim strSQL as string = "Select CompanyName, ContactName, ContactTitle, Address, Region, Phone from Customers"
Dim conexaoBD as New SQLConnection(strConn)
Dim ds as DataSet=New DataSet()

Dim Cmd as New SQLDataAdapter(strSQL,conexaoBD)

Cmd.Fill(ds,"Customers")

DataGrid1.Datasource=ds.Tables("Customers").DefaultView
DataGrid1.DataBind()

End Sub

</script>
<html>
<head><title>SQL Server - DataSet</title></head>
<body>
<form method="post" runat="server">
     <asp:DataGrid id="DataGrid1" runat="server"></asp:DataGrid> 
</form>
</div>
</body>
</html>
2 - Conexão com SQL Server usando DataReader
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SQLClient" %>

<script language="VB" runat="server">

Sub Page_Load(Source as Object, E as EventArgs)
	Dim strConn as string = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind"
	Dim strSQL as string = "Select ContactName, ContactTitle, Address, City, Phone from Customers"
	Dim conexaoBD as New SQLConnection(strConn)
	Dim Cmd as New SQLCommand(strSQL, conexaoBD)
	conexaoBD.Open()
	DataGrid1.DataSource = Cmd.ExecuteReader(system.data.CommandBehavior.CloseConnection)
	DataGrid1.DataBind()
End Sub

</script>
<html>
<head><title>SQL Server - DataReader</title></head>
<body>
<form method="post" runat="server">
     <asp:DataGrid id="DataGrid1" runat="server"></asp:DataGrid> 
</form>
</div>
</body>
</html>
3 - Conexão com banco de dados Access usando OleDB com DataSet
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDB" %>

<script language="VB" runat="server">

Sub Page_Load(Source as Object, E as EventArgs)
	Dim strConn as string = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath(".\northwind.mdb") & ";"
	Dim strSQL as string = "Select CompanyName, ContactName, ContactTitle, Phone from Customers"
	Dim conexaoBD as New OleDBConnection(strConn)
	Dim ds as DataSet=New DataSet()
	Dim Cmd as New OleDBDataAdapter(strSQL,conexaoBD)
	Cmd.Fill(ds,"Customers")
	DataGrid1.Datasource=ds.Tables("Customers").DefaultView
	DataGrid1.DataBind()
End Sub
</script>
<html>
<head> <title>OLeDb - DataSet</title></head>
<body>
<form method="post" runat="server">
   <asp:DataGrid id="DataGrid1" runat="server"></asp:DataGrid>
</form>
</body>

4 - Conexão com banco de dados Access usando OleDB com DataReader
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDB" %>

<script language="VB" runat="server">

Sub Page_Load(Source as Object, E as EventArgs)
    Dim strConn as string = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath(".\northwind.mdb") & ";"
    Dim strSQL as string = "Select CompanyName, ContactName, City, Region, PostalCode, Phone from Customers"
    Dim conexaoBD as New OleDBConnection(strConn)
    Dim Cmd as New OLEDBCommand(strSQL, conexaoBD)
    conexaoBD.Open()
    DataGrid1.DataSource = Cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
    DataGrid1.DataBind()
End Sub

</script>
<html>
<head> <title>OLeDb - DataReader</title></head>
<body>
  <asp:DataGrid id="DataGrid1" runat="server"></asp:DataGrid>
</body>
</html>

Obs: Não estou efetuando o tratamento de erros pois o objetivo é apenas mostrar as formas de conexões usando DataReader e DataSet.

Eu sei é apenas ASP.NET , mas eu gosto...


José Carlos Macoratti