Usando um Recordset ADO com ADO.NET

 

Com saudades da ADO e do seu modelo simples de acesso aos dados. Creio que com a série de artigos sobre ADO.NET você já se convenceu das vantagens da ADO.NET sobre a ADO. Mas se você é um saudosista inconsolável , saiba que você ainda pode usar o velho objeto Recordset da ADO na ADO.NET.

 

Embora a diferença básica entre os dois modelos é que ADO é baseada na COM e ADO.NET é baseado em XML , podemos ainda , por questão de compatibilidade instanciar objetos COM em um projeto ADO.NET.  Nesta dica eu vou mostrar como fazer isto passo a passo...

1 - Inicie um novo projeto no Visual Studio.NET com as seguintes características (sinta-se a vontade para alterar a seu gosto.)

  1. Project Types : Visual Basic Projects
  2. Templates : Windows Application
  3. Name : Ado_adonet
  4. Location : c:\vbnet\ADO_ADONET
2- Inclua no seu formulário um componente DataGrid e a seguir faça uma referência (aqui esta o pulo do gato) a livraria ADO , clicando com o botão direito sobre o projeto na janela Solution Explorer e a seguir selecionado a opção Add Reference....

A janela ao lado irá surgir ; clique na aba COM  e procure pela livraria: Microsoft Activex Data Objects 2.x library , selecionando-a e a segior clicando a seguir no botão de OK.

 

3- Feita a inclusão da livraria você verá o namespace ADODB no seu projeto na janela Solution Explorer conforme ao figura ao lado.

 

4- Agora quando você digitar o seu código os objetos da library ADODB estarão disponíveis na janela intellisense , conforme abaixo :

 

 

5- Finalmente vamos incluir o código no evento Load do formulário que irá fazer as seguintes tarefas :

  1. Definir as strings de conexão e de comando sql para acessar a tabela Clientes da base de dados Access - Northwind.mdb

  2. Criar a conexão , gerar o cursor e o recordset

  3. Definir o DataSet e preenchê-lo com o recordset

Veja como seria o código  :

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

 

   'Define uma string para conexão e outra sql para acessar a tabela Clientes do banco de dados Northwind.mdb

     Dim conexao As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\teste\Northwind.mdb"

     Dim sql As String = "Select CódigoDoCliente As Codigo, NomeDaEmpresa As Empresa From Clientes"

 

   'abre a conexao e define o tipo de cursor

     Dim conn As Connection = New Connection()

     Dim ModoConn As Integer = ConnectModeEnum.adModeUnknown

   conn.CursorLocation = CursorLocationEnum.adUseServer

   conn.Open(conexao, "", "", ModoConn)

 

   'gera o recordset

     Dim regAfetados As Object

     Dim cmdtype As Integer = CommandTypeEnum.adCmdText

      Dim rs As _Recordset = conn.Execute(sql)

 

    'cria um dataset e preenche com o recordset

       Dim ds As DataSet = New DataSet("Recordset")

    Dim da As OleDbDataAdapter = New OleDbDataAdapter()

 

     da.Fill(ds, rs, "Clientes")

 

     'exibe os dados no datagrid

      DataGrid1.DataSource = ds.DefaultViewManager

 

End Sub

 

6- Só falta executar e conferir ...

 

 

Garantido , Né ...!!!  até a próxima dica VB.NET...


José Carlos Macoratti