VB.NET - Acessando o MySQL


Já tratei do MySql em diversos artigos no site, desde os tempos do VB5 passando pelo VB6 até chegar no VB.NET e ASP.NET. A relação de artigos abaixo não me deixa mentir:

Volto ao assunto para mostrar como acessar o MySQL via VB.NET usando o provedor específico para o MySQL, sem precisar usar um provedor ODBC. Vou usar o provedor MySQL Connector/NET  que você pode baixar do site do MySQL.

Antes de iniciar o projeto VB.NET para realizar a conexão você vai precisar ter os seguintes componentes instalados:

  1. MySQL

  2. MySQL Query Browser

  3. MySQL Connector/NET

1 - Instalando o MySQL

Atualmente existem 3 versões estáveis do MySQL disponíveis para download: MySQL 4.0, MySQL 4.1, and MySQL 5.0.

Neste artigo vou usar o MySQL 4.1 que você pode baixar no endereço : http://dev.mysql.com/downloads/mysql/4.1.html

Existem 3 sabores disponíveis :  Windows Essentials, Windows, e Without installer .Para os propósitos deste artigo o sabor Windows Essentials pode ser usado sem problema algum. Faça o download e instale o MySQL seguindo as instruções.

2- Instalando o MySQL Query Browser

O MySQL Query Browser é uma ferramenta com uma interface gráfica que permite criar, editar tabelas e navegar pelo conteúdo das tabelas fazendo as alterações que você desejar.

Para detalhes de operação do MySQL Query Browser você pode acessar a documentação em : http://dev.mysql.com/doc/query-browser/en/index.html.

Faça o download do MySQL Query Browser no seguinte endereço :  http://dev.mysql.com/downloads/query-browser/index.html

Após o download instale a ferramenta seguindo as instruções do assistente.

3- Instalando o MySQL Connector/NET

O MySQL Connector/NET é um dos provedores com mais recursos para o MySQL, foi escrito em C# , possui código gerenciado, e pode ser portado para qualquer plataforma que suporta o .NET incluindo o  Mono . Uma vantagem do MySQL Connector/NET é usar um protocolo nativo MySQL. Ele esta disponível gratuitamente sob os termos da GNU Public License.

Faça o download do MySQL Connector/NET no endereço : http://dev.mysql.com/downloads/connector/net/

Assumindo que você instalou os componentes com sucesso , vamos continuar...

Verificando os detalhes finais

Quando você instala o MySQL vai notar que , por padrão, ele vem com o banco de dados test que você pode usar para efetuar os seus testes. Mas vou aproveitar a ocasião e mostrar uma ferramenta que você pode usar para migrar seu banco de dados Access para o MySQL.

Neste artigo eu vou migrar o banco de dados northwind.mdb com todas as suas tabelas para o MySQL usando uma ferramenta grátis chamada Access to MySQL que você pode pegar no endereço : http://www.bullzip.com/download.php

O Access to MySQL que converte o seu banco de dados Access para MySQL e possui os seguintes recursos:

Após baixar o Acess to MySQL execute-o e após a primeira tela você deverá informar o caminho do banco de dados Access que deseja migrar:

A seguir informe os parâmetros para efetuar a conexão com o MySQL. (Eu estou me conectando como root mas é aconselhável criar um novo usuário.)

Na etapa seguinte selecione as tabelas que deseja migrar.

Antes de efetuar a migração você pode selecionar se deseja transferir os índices e os registros e as informações padrão e auto-numeração dos campos.

Pronto ! Seu banco de dados Access virou MySQL...

Vamos usar  a ferramenta MySQL Query Browser para visualizar as tabelas e os registros para verificar se tudo ocorreu sem problemas.

Ao iniciar o MySQL Query Browser você deverá informar os parâmetros para efetuar a conexão com o MySQL:

Após a conexão podemos visualizar o banco de dados northwind e suas tabelas. Selecionando a tabela customers podemos exibir os registros conforme figura abaixo:

Criando o projeto VB.NET para conexão com o MySQL

Vamos agora ao projeto VB.NET. Crie um novo projeto chamado MySqlNet no VS.NET (ou no VB.NET 2005 Express Edition) do tipo Windows Application usando a linguagem VB.NET e no formulário padrão inclua um componente DataGrid.

Neste momento devemos incluir no projeto uma referência ao provedor MySQL Connector/NET que foi instalado. Para isto clique com o botão direito do mouse sobre o projeto e selecione a opção Add Reference.

Na janela Add Reference escolha a opção MySQL.Data.dll conforme abaixo:

Agora podemos usar o imports para o namespace MySql.Data.MySqlClient conforme abaixo:

Imports MySql.Data.MySqlClient

E a seguir podemos declarar as variáveis usadas no projeto no início do formulário form1.vb:

Dim conn As New MySqlConnection
Dim myCommand As New MySqlCommand
Dim myAdapter As New MySqlDataAdapter
Dim myData As New DataTable
Dim SQL As
String

Agora vamos incluir o código que faz a conexão com o MySQL e acessa o banco de dados northwind exibindo os registros da tabela employees.

Vou colocar o código no evento Load do formulário form1.vb:

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


Dim
conn As MySqlConnection

conn = New MySqlConnection
 

conn.ConnectionString = "server=localhost;user id=root;password=mac;database=northwind"


SQL = "SELECT * FROM northwind.employees"


Try

   conn.Open()

   Try

      myCommand.Connection = conn

      myCommand.CommandText = SQL

      myAdapter.SelectCommand = myCommand

      myAdapter.Fill(myData)

      DataGrid1.DataSource = myData

   Catch myerro As MySqlException

     MsgBox("Erro de leitura no banco de dados : " & myerro.Message)

   End Try

   MessageBox.Show("Conexão aberta com sucesso")

   conn.Close()

Catch myerro As MySqlException

   MessageBox.Show("Erro ao conectar com o Banco de dados : " & myerro.Message)

Finally

   conn.Dispose()

End Try

End Sub

Veja a string de conexão usada : conn.ConnectionString = "server=localhost;user id=root;password=mac;database=northwind"

(Não é muito legal exibir a senha em aberto não é mesmo???)

E instrução SQL menciona o banco de dados e a tabela usada : SQL = "SELECT * FROM northwind.employees"

O resto do código é idêntico aos demais exemplos já exibidos no site para Access e SQLServer.

Ao final teremos os registros da tabela employees exibidos no datagrid conforme figura :

Meu objetivo foi mostrar como realizar a conexão com o MySQL sem usar ODBC e ele esta cumprido. A partir deste ponto as demais operações são semelhantes ao que já foi discutido em diversos artigos sobre acesso a dados no site.

Pegue o projeto aqui : mySqlNet.zip. O resto, agora é com você...

Eu sei é apenas VB.NET mas eu gosto... 

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

 

             Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter
 

Referências:


José Carlos Macoratti