Upload
luforcan
View
433
Download
4
Embed Size (px)
Citation preview
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 :
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 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()
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.
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