12
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

Acessando o MySQL Usando o ODBC Data Provider

Embed Size (px)

Citation preview

Page 1: Acessando o MySQL Usando o ODBC Data Provider

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)

Page 2: Acessando o MySQL Usando o ODBC Data Provider

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 :

Page 3: Acessando o MySQL Usando o ODBC Data Provider

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.) 

Page 4: Acessando o MySQL Usando o ODBC Data Provider

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: 

Page 5: Acessando o MySQL Usando o ODBC Data Provider

 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 OdbcDataReaderDim sql As String = "Select * from Clientes"Dim strsql As StringDim conexao As OdbcConnectionstrsql = "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 TryWhile (dr.Read())    ListBox1.Items.Add(dr("Nome"))End Whiledr.Close()conexao.Close()

Page 6: Acessando o MySQL Usando o ODBC Data Provider

conexao = NothingEnd 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 stringsView products that this article applies to.

Page 7: Acessando o MySQL Usando o ODBC Data Provider

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

Page 8: Acessando o MySQL Usando o ODBC Data 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;" & _

Page 9: Acessando o MySQL Usando o ODBC Data Provider

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)

Page 10: Acessando o MySQL Usando o ODBC Data Provider

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

Page 11: Acessando o MySQL Usando o ODBC Data Provider

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