C#
- Acessando MySQL com Windows Forms
Vou mostrar como acessar o MySQL usando a linguagem C# em uma aplicação Windows Forms.
Primeiro baixe a versão 5 MySQL Community Server , que é gratuito no sítio: http://dev.mysql.com/downloads/
Em seguida baixe também o conector para a plataforma .NET em : http://dev.mysql.com/downloads/connector/net/5.2.html
A instalação padrão é muito simples basta seguir as orientações do assistente. Recomendo alterar a senha do usuário root.
Agora baixe e instale o MySQL Administrator para administrar o servidor MySQL.
Vamos instalar também uma ferramenta gráfica para poder trabalhar com o MySQL para executar consultas e criar stored procedures: MySQL Query Browser
Obs: As duas últimas ferramentas são disponibilizadas em um único pacote em : http://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-gui-tools-5.0-r12-win32.msi/from/pick
Haja download , mas em compensação
é tudo grátis...![]()
Após terminar a instalação de todas as ferramentas indicas você pode conferir no Windows , Menu Iniciar -> Todos Programas a relação dos programas instalados:
![]() |
Agora execute o MySQL Administrator e abra o MySQL; se tudo foi realmente instalado corretamente você deverá obter o seguinte resultado:
![]() |
|
![]() |
Como padrão o MySQL apresenta um banco de dados Test. Selecionando o banco de dados vemos que não existe nenhuma tabela criada.
![]() |
Para criar um novo banco de dados clique sobre a área vazia que apresenta os schemas e selecione a opção Create New Schema;
![]() |
Vamos criar um banco de dados chamado Cadastro para usar como exemplo neste artigo. Digite o nome Cadastro e clique em OK para criar o banco de dados.
![]() |
![]() |
Agora que ja temos o banco de dados vamos clicar no botão Create Table e definir a tabela Mensagens conforme abaixo:
![]() |
Clicando no botão Apply Changes será exibida o comando SQL para criação da tabela. Clique em Execute para gerar a tabela Mensagens.
![]() |
Pronto ! Já criamos o banco de dados e a tabela agora vamos ao trabalho...
Criando o projeto no SharpDevelop 2.2
Vamos criar uma nova solução C# usando o SharpDevelop 2.2 (você pode usar o Visual C# Express Edition) com o nome daoMySQL através do menu Arquivo -> Novo -> Solução , selecionando o Modelo Aplicação Windows;

Neste projeto eu vou mostrar
Como você pode notar , um projeto muito simples pode nos ensinar muitas coisas...
Antes de iniciar vamos incluir duas referências no nosso projeto:
Clique com o botão direito do mouse sobre o projeto e selecione Adicionar Referência;
Em seguida selecione a referência MySql.Data;
![]() |
Ainda na mesma janela selecione a referência System.Configuration;
![]() |
Clique no botão OK;
Vamos criar um arquivo App.Config para podermos armazenar a string de conexão.
Clique com o botão direito do mouse sobre o projeto e selecione Adicionar -> Novo Item;
Na janela Nova Arquivo , selecione Misc e App.Config e clique em Criar;
![]() |
Inclua o código destacado em negrito referente a string de conexão para o MysQL do nosso exemplo onde estamos acessando o banco de dados Cadastro com o usuário root; (A senha deve ser a que você atribuiu na instalação);
<?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <!-- Example connection to a SQL Server Database on localhost. --> <!-- <add name="ExampleConnectionString" connectionString="Data Source=.;Initial Catalog=DBName;Integrated Security=True" providerName="System.Data.SqlClient" /> --> <add name="MySQLConnectionString" connectionString="Server=localhost;Database=Cadastro;Uid=root;Pwd=xxxxx;Connect Timeout=30;" /> </connectionStrings> <appSettings> <!-- access these values via the property: System.Configuration.ConfigurationManager.AppSettings[key] --> <add key="Setting1" value="Very" /> <add key="Setting2" value="Easy" /> </appSettings> </configuration> |
Vamos agora criar uma classe chamada daoMySQL onde iremos usar o padrão Singleton para obter uma única instância da conexão com o MySQL;
O padrão Singleton garante que para uma classe específica só possa existir uma única instância, a qual é acessível de forma global e uniforme
Nota: Para
saber mais sobre o padrão Singleton veja o meu
artigo:
O padrão
Singleton
Clique com o botão direito sobre o projeto e selecione Adicionar -> Novo Item;
A seguir selecione C# e em modelo selecione Classe informando o nome daoMySQL;
A seguir digite o código abaixo para esta classe:
using System;
using MySql.Data.MySqlClient;
using System.Configuration;
namespace daoMySQL
{
/// <summary>
/// Classe que usa o padrão Singleton para obter
/// uma instãncia da conexão com o MySQL
/// </summary>
public class MySQLDao
{
private static readonly MySQLDao instanciaMySQL = new MySQLDao();
private MySQLDao(){ }
public static MySQLDao getInstancia()
{
return instanciaMySQL;
}
public MySqlConnection getConexao()
{
string conn = ConfigurationManager.ConnectionStrings["MySQLConnectionString"].ToString();
return new MySqlConnection(conn);
}
}
}
|
Observe que o construtor da classe é marcado como private e desta forma se tentarmos usar o operador new com essa classe teremos um erro;
Somente a própria classe terá acesso a este método e é o que ela faz na linha de código :
private static readonly MySQLDao instanciaMySQL = new MySQLDao();
usando o operador new.
O atributo instanciaMySQL é obtido via método getInstancia que é do tipo da classe; Este método retornará sempre o mesmo objeto.
No formulário mainform.cs inclua um componente DataGridView e um componente MenuStrip e defina a opção Sair conforme o leiaute abaixo
![]() |
Agora defina os namespaces que iremos usar neste formulário :
using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; using MySql.Data.MySqlClient; using System.Data; namespace daoMySQL |
No evento Load do formulário inclua o método init() que irá será usado para acessar o MySQL;
void MainFormLoad(object sender, EventArgs e)
{
init();
}
|
O método init() é dado a seguir:
public void init()
{
using (MySqlConnection conexaoMySQL = MySQLDao.getInstancia().getConexao())
{
try
{
conexaoMySQL.Open();
string mSQL = "Select * from Mensagens";
MySqlCommand cmd = new MySqlCommand(mSQL,conexaoMySQL);
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
DataTable dtMensagens = new DataTable();
da.Fill(dtMensagens);
this.dataGridView1.DataSource = dtMensagens;
}
catch (MySqlException msqle)
{
MessageBox.Show("Erro de acesso ao MySQL : " + msqle.Message,"Erro");
}
finally
{
conexaoMySQL.Close();
}
}
}
|
Após obter a instância do MySQL efetuamos a conexão e usando um DataAdapter preenchemos um DataTable para exibir o resultado no DataGridView;
![]() |
E com isso acabamos de acessar o MySQL em uma aplicação Windows Forms usando o provider MySQL Connector/5.1 usando o padrão Singleton e obtendo a string de conexão do arquivo de configuração app.config.
Pegue o projeto completo aqui:
daoMySQL.zip
referências:
- MySQL - Vinculando , Importando e Exportando
tabelas do Access
- Visual Basic - Acessando MySQL com ADO usando
um Driver ODBC
- Visual Basic - Acessando MySQL com ADO
- VB e MySQL - Gerenciando
dados
- MySQL - Distribuindo o MySQL com sua
aplicação
- MySQL - Operações básicas com SQL
ASP.NET - Acesso ao MySQL
José Carlos Macoratti