Acessando o MySQL usando o ODBC .Net Data Provider

 

O ODBC .NET Data provider permite o acesso a banco de dados ODBC através de um driver ODBC nativo da mesma forma que os provedores nativos OLE DB. A grande vantagem em usar os provedores ADO.NET é que todos eles definem a mesma hierarquia de classes , e , por isso a única coisa que você tem que alterar são as classes e a string de conexão.

 

Diferentemente dos provedores  - SQL e OleDb - o provedor ODBC precisa ser instalado a parte do .NET Framework , então a primeira coisa a fazer é pegar o provedor no site da Micro$oft - (http://msdn.microsoft.com/downloads/default.asp?URL=/downloads/sample.asp?url=/MSDN-FILES/027/001/668/msdncompositedoc.xml ). 

 

Após instalar o OBDC .NET temos que customizar a barra de ferramentas (toolbox) para incluir os componentes de dados ODBC. Vamos fazer isto:

Figura 1.0 Figura 2.0
Agora para poder usar o ODBC no seu projeto VB.NET você precisa incluir uma referência a Microsoft.Data.Obdc.dll. Estando no seu projeto , em - Solution Explorer - e clique com o botão direito do mouse e selecione a opção - Add Reference... (veja figura ao lado)

Na janela - Add Reference - clique no botão - Browse.

O arquivo Microsoft.Data.Obdc.dll esta na pasta :

\Arquivos de Programas\Microsoft.NET\Obdc.NET

Selecione o componente e clique no botão Open para incluir uma referência

 

Após a inclusão as referências irão aparecer na janela - Add Reference - e no seu projeto , na janela - Solution Explorer ; conforme abaixo

 

Pronto , agora basta inserir o código que trata as informações da fonte de dados e fazer a referência no código da classe do OBDC:

 

Imports Microsoft.Data.Obdc

 

As classes do provedor ODBC.NET são :

 

OdbcCommand  Representam o comando SQL ou Procedimento armazenado a ser executado
OdbcCommandBuilder  Gera automaticamente comandos  select , insert , update e delete
OdbcConnection  Representa uma conexão
OdbcDataAdapter  Representa um Data adapter
OdbcDataReader  Representa um data reader
OdbcError  Representa os erros e avisos
OdbcErrorCollection  Representa uma coleção de erros e avisos
OdbcException  Representa a classe de exceção ODBC
OdbcParameter  Representa um parâmetro ODBC
OdbcTransaction  Representa uma transação

 

A string de conexão para OdbcConnection contém o driver para a fonte de dados (data source ) e o caminho para a fonte de dados com os parâmetros opcionais para senha ( Password) e usuario (User). Vejamos as strings de conexão para alguns casos:

 

"Driver={Microsoft ODBC for Oracle};Server=ORACLE8i7;UID=obdcuser;PWD=123456"  Oracle
"Driver={SQL Server};SERVER=MyServer;UID=sa;Trusted_connection=true;DATABASE=northwind;"  SQL Server
"Driver={Microsoft Access Driver(*.mdb)};DQB=c:\SeuBancodeDados.mdb"  Access
"Driver={Microsoft Excel Driver(*.xls)};DQB=c:\teste\planilha.xls"  Excel
"Driver={Microsoft Text Driver(*.txt; *.csv)};DQB=c:\teste"  Arquivos Textos
"Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=Clientes;uid=root;pwd="  MySQL   <<<

 

Obs: Você pode usar um DSN  - ODBC Data Source - como uma string de conexão através do Administrador ODBC.

Ex:   conexão = New OdbcConnection("DSN=DADOS;UID=Macoratti;pwd=Teste")

 

Vou mostrar como acessar um banco de dados MySQL usando o provedor ODBC .NET. Se você ainda não tem o MySQL instalado você pode fazer o download de uma das versões disponíveis no link : http://www.mysql.com/downloads/index.html . A instalação é simples basta descompactar e seguir as instruções .

 

Considerando que seu MySql esta instalado vamos agora criar um banco de dados com o nome de Clientes no MySql e neste banco de dados vamos criar a tabela Clientes e inserir alguns dados. Para facilitar o nosso serviço vamos usar uma ferramenta free para fazer este serviço: DBtools Manager , que você pode pegar em : http://www.dbtools.com.br/EN/

Nota: No link : http://www.mysql.com/downloads/api-dotnet.html você pode pegar o driver MySQL para usar na plataforma .NET ( veremos isto em outro artigo.)

 

Após instalar o DBtools inicie a ferramenta e crie um servidor MySQL na Menu Tools opção Server -> Server Manager ; a seguir vamos criar um novo banco de dados clicando no ícone Database com direito do mouse e selecione a opção Create Database  e chamá-lo Clientes.

 

 

Criado o banco de dados vamos usar o Table Editor para criar uma nova tabela , chamada Clientes , e definir a sua estrutura conforme abaixo :

 

 

A próxima etapa é inserir alguns dados na tabela Clientes , conforme figura abaixo: 

 

 

Bem , já temos o banco de dados , a tabela com os dados , só falta agora criar um projeto no VS.NET , e, usando o VB.NET fazer uma conexão via ODBC .NET para exibir os dados em um controle ListBox. Vamos lá...

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 : ODBCTeste
  4. Location : c:\vbnet\ODBCTeste

2 - No formulário padrão form1.vb inclua uma controle ListBox e um botão de comando - Button1.

3- Insira o seguinte código no evento Click do botão de comando - Button1 :

Dim conexao As OdbcConnection

Dim dr As OdbcDataReader

Dim sql As String = "Select * from Clientes"

Dim strsql As String

Dim conexao As OdbcConnection

strsql = "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=Clientes;uid=root;pwd=;"

conexao = New OdbcConnection(strsql)

conexao.Open()

Dim cmd As OdbcCommand = New OdbcCommand(sql, conexao)

Try

   dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)

Catch ex As Exception

   MsgBox(ex, MsgBoxStyle.Information)

End Try

While (dr.Read())

    ListBox1.Items.Add(dr("Nome"))

End While

dr.Close()

conexao.Close()

conexao = Nothing

End Sub

 

A string de conexão é a seguinte :

 

strsql = "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=Clientes;uid=root;pwd=;"

 

Nela temos definidos :

  1. O driver para conexão com o MySQL - Driver={MySQL ODBC 3.51 Driver}
  2. O nome do servidor - Server=localhost
  3. O nome do Banco de dados - Database=Clientes
  4. O identificador do usuário e a senha - uid=root;pwd=
  5.  

Ao executar o projeto e clicar no botão de comando vamos obter os dados que foram inseridos na tabela Clientes no MySQL.

 

 

Obs: O acesso a dados via ODBC é mais lento do que usar um provedor nativo Ole DB. Somente o utilize se não tiver alternativa.

 

referências:

HOW TO: Use the ODBC .NET Managed Provider in Visual Basic .NET and Connection Strings


José Carlos Macoratti