 C#
- Acessando MySQL com Windows Forms
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
 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
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