Você está na página 1de 11

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:

• Abra a caixa de ferramentas e selecione a guia Data


• A seguir clique com o botão direito do mouse e no menu suspenso selecione
a opção - Customize ToolBox . (Figura 1.0)

Figura 1.0 Figura 2.0


• A seguir na janela - Customize Toobox - selecione a guia - .NET Framework
Components - e procure pelo Namespace - Microsoft.Data.Obdc
• Marque a caixa de seleção para estes namespaces e a seguir clique em OK.
(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 :


Representam o comando SQL ou Procedimento
OdbcCommand
armazenado a ser executado
Gera automaticamente comandos select , insert ,
OdbcCommandBuilder
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
Oracle};Server=ORACLE8i7;UID=obdcuser;PWD=123456"
"Driver={SQL
SQL
Server};SERVER=MyServer;UID=sa;Trusted_connection=true;DATABASE
Server
=northwind;"
"Driver={Microsoft Access
Access
Driver(*.mdb)};DQB=c:\SeuBancodeDados.mdb"
"Driver={Microsoft Excel Driver(*.xls)};DQB=c:\teste\planilha.xls" Excel
Arquivo
"Driver={Microsoft Text Driver(*.txt; *.csv)};DQB=c:\teste"
s Textos
"Driver={MySQL ODBC 3.51 MySQL
Driver};Server=localhost;Database=Clientes;uid=root;pwd=" <<<

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

How to use the ODBC .NET Managed Provider in Visual


Basic .NET and connection strings
View products that this article applies to.
This article was previously published under Q310985

On This Page

• SUMMARY

o Download the ODBC .NET Provider

o Create the project

o Connection string samples

o Test the client application

o Troubleshooting

• REFERENCES

Expand all | Collapse all

SUMMARY

This step-by-step article describes how to use the ODBC .NET Managed Provider in Visual Basic

.NET. This article also includes samples connection strings that you can use to access your data.

The ODBC .NET Data Provider is an add-on component to the Microsoft .NET Framework Software

Development Kit (SDK). It provides access to native ODBC drivers the same way that the OLE

DB .NET Data Provider provides access to native OLE DB Providers. Although the ODBC .NET Data

Provider is intended to work with all compliant ODBC drivers, it has only been tested with the

following drivers:

• Microsoft SQL ODBC Driver

• Microsoft ODBC Driver for Oracle

• Microsoft Jet ODBC Driver

NOTE: If the .NET Framework SDK (which is included with Visual Studio .NET) is not installed, the

setup for this download fails. As part of the setup for this download, the Microsoft.Data.ODBC

namespace is added to the Global Assembly Cache by using the Gacutil.exe utility that is included

with the .NET Framework SDK.

Back to the top

Download the ODBC .NET Provider

1. Download the ODBC .NET Managed Provider from the following Microsoft Web site:
http://www.microsoft.com/downloads/details.aspx?familyid=6ccd8427-1017-4f33-a062-

d165078e32b1

2. The ODBC .NET Data Provider also requires that you install Microsoft Data Access

Components (MDAC) version 2.7 or later. You can download the latest version of MDAC

from the following Microsoft Web site:

http://msdn.microsoft.com/en-us/data/aa937729.aspx

3. After you install the ODBC .NET Data Provider, proceed to the next section to create the

project.

Back to the top

Create the project

1. Start Microsoft Visual Studio NET.

2. Create a new Visual Basic Windows Application project. Form1 is added to the project by

default.

3. On the Project menu, click Add Reference.

4. On the .NET tab, click Microsoft.Data.ODBC.dll. After the Microsoft.Data.ODBC.dll

assembly appears in the list of selected components, click OK.

5. Switch to Code view, and add the following code immediately before the Public Class

Form1 code:

6. Imports System.Data
7. Imports Microsoft.Data.ODBC

8. Add four Button controls to Form1, and label these controls SQL Server, Jet, Oracle

and DSN respectively.

Back to the top

Connection string samples

1. Add the following code to the SQL Server button:

2. Dim cn As OdbcConnection
3. cn = New OdbcConnection("DRIVER={SQL
Server};SERVER=MySQLServer;UID=sa;" & _
4. "PWD=mypassword;DATABASE=northwind;")
5.
6. Dim mystring As String = "select * from Customers"
7. Dim cmd As OdbcCommand = New OdbcCommand(mystring)
8. cn.Open()
9. MsgBox("Connected")
10. cn.Close()

11. Add the following code to the Jet button:


12. Dim cn as OdbcConnection
13. cn = New OdbcConnection ("Driver={Microsoft Access Driver (*.mdb)};"
&_
14. "DBQ=D:\Program Files\Microsoft
Office\Office10\Samples\Northwind.mdb;UID=;PWD=")
15. Dim mystring As String = "Select * from Titles"
16. Dim cmd as OdbcCommand = New OdbcCommand(mystring)
17. cn.Open()
18. MsgBox("Connected")
19. cn.Close()

20. Add the following code to the Oracle button:


21. Dim cn as OdbcConnection
22. cn= New OdbcConnection ("Driver = {Microsoft ODBC for Oracle};" & _
23. "Server=myOracleserver;uid=myuid;pwd=mypwd")
24. Dim myString as String = "Select * from Customers"
25. dim cmd as OdbcCommand = New OdbcCommand(myString)
26. cn.open()
27. MsgBox "Connected"
28. cn.Close

29. Add the following code to the DSN button:


30. Dim cn as OdbcConnection
31. cn = New OdbcConnection ("dsn=MyDSN;uid=sa;pwd=myPassword;")
32. Dim mystring As String = "Select * from customers"
33. Dim cmd As OdbcCommand = New OdbcCommand(mystring)
34. cn.Open()
35. MsgBox("Connected")
36. cn.Close()
37. Modify the OdbcConnection strings as appropriate for your environment.

Back to the top

Test the client application

1. Press the F5 key to compile and to run the application.

2. Click each button. A message box appears, which states that you have successfully

connected to your data.

Back to the top

Troubleshooting

If you encounter a problem when you connect to your data source (for example, if you use an

incorrect password, User ID, or database name), you receive the following generic error message

unless you trap for a specific error message:

An unhandled exception of type 'Microsoft.Data.ODBC.OdbcException' occurred in

Microsoft.Data.ODBC.dll. Additional information: System Error

To provide more information about the error and to assist in troubleshooting, you can add a try-

catch-finally block to the code. For example:

Try
cn.Open()
Catch ex as OdbcException
MsgBox(ex.Message)
Finally
cn.Close()
End Try

Back to the top

REFERENCES

For more information, click the following article number to view the article in the Microsoft

Knowledge Base:

168336 How to open ADO connection and recordset objects

For more information about .NET managed providers, refer to the .NET Developer's Center or the

following Microsoft Web site:

Inside .NET Managed Providers

http://msdn.microsoft.com/en-us/library/ms810268.aspx
For more information about .NET, visit the .NET newsgroups. The

microsoft.public.dotnet.framework.odbcnet newsgroup has been set up for this release.

Back to the top

APPLIES TO

• Microsoft ADO.NET 1.1

• Microsoft ADO.NET 1.0

• Microsoft Visual Basic .NET 2003 Standard Edition

• Microsoft Visual Basic .NET 2002 Standard Edition

Back to the top