Vous êtes sur la page 1sur 7

C# - Acessando MySQL com Windows Forms

Vou mostrar como acessar o MySQL usando a linguagem C# em uma aplicao Windows Forms. Primeiro baixe a verso 5 MySQL Community Server , que gratuito no stio: http://dev.mysql.com/downloads/ Em seguida baixe tambm o conector para a plataforma .NET em : http://dev.mysql.com/downloads/connector/net/5.2.html A instalao padro muito simples basta seguir as orientaes do assistente. Recomendo alterar a senha do usurio root. Agora baixe e instale o MySQL Administrator para administrar o servidor MySQL. Vamos instalar tambm uma ferramenta grfica para poder trabalhar com o MySQL para executar consultas e criar stored procedures: MySQL Query Browser Obs: As duas ltimas ferramentas so disponibilizadas em um nico pacote em : http://dev.mysql.com/get/Downloads/MySQLGUITools/mysqlgui-tools-5.0-r12-win32.msi/from/pick Haja download , mas em compensao tudo grtis... Aps terminar a instalao de todas as ferramentas indicas voc pode conferir no Windows , Menu Iniciar -> Todos Programas a relao 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 padro o MySQL apresenta um banco de dados Test. Selecionando o banco de dados vemos que no existe nenhuma tabela criada.

Para criar um novo banco de dados clique sobre a rea vazia que apresenta os schemas e selecione a opo 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 boto Create Table e definir a tabela Mensagens conforme abaixo:

Agora que ja temos o banco de dados vamos clicar no boto Create Table e definir a tabela Mensagens conforme abaixo:

Clicando no boto Apply Changes ser exibida o comando SQL para criao 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 soluo C# usando o SharpDevelop 2.2 (voc pode usar o Visual C# Express Edition) com o nome daoMySQL atravs do menu Arquivo -> Novo -> Soluo , selecionando o Modelo Aplicao Windows;

Neste projeto eu vou mostrar

Neste projeto eu vou mostrar Criar banco de dados e tabelas no MySQL; Armazenar a string de conexo no arquivo App.Config; Recuperar a string de conexo do arquivo App.Config; Como acessar o MySQL atravs de uma consulta SQL; Usar o padro Singleton para obter somente uma instncia da conexo MySQL; Acessar os dados da tabela usando um DataTable ao invs de um DataSet; Exibir os dados em um controle DataGridView; Como voc pode notar , um projeto muito simples pode nos ensinar muitas coisas... Antes de iniciar vamos incluir duas referncias no nosso projeto: 1. MySql.Data - Para termos acesso as classes de acesso a dados do conector MySQL Connect; 2. System.Configuration - Para podermos acessar a string de conexo do MySQL no arquivo App.Config; Clique com o boto direito do mouse sobre o projeto e selecione Adicionar Referncia; Em seguida selecione a referncia MySql.Data;

Ainda na mesma janela selecione a referncia System.Configuration;

Clique no boto OK; Vamos criar um arquivo App.Config para podermos armazenar a string de conexo. Clique com o boto 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 cdigo destacado em negrito referente a string de conexo para o MysQL do nosso exemplo onde estamos acessando o banco de dados Cadastro com o usurio root; (A senha deve ser a que voc atribuiu na instalao); <?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 padro Singleton para obter uma nica instncia da conexo com o MySQL; O padro Singleton garante que para uma classe especfica s possa existir uma nica instncia, a qual acessvel de forma global e uniforme Nota: Para saber mais sobre o padro Singleton veja o meu artigo: O padro Singleton Clique com o boto 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 cdigo abaixo para esta classe: using System; using MySql.Data.MySqlClient; using System.Configuration; namespace daoMySQL { /// <summary> /// Classe que usa o padro Singleton para obter /// uma instncia da conexo 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 prpria classe ter acesso a este mtodo e o que ela faz na linha de cdigo : private static readonly MySQLDao instanciaMySQL = new MySQLDao(); usando o operador new. O atributo instanciaMySQL obtido via mtodo getInstancia que do tipo da classe; Este mtodo retornar sempre o mesmo objeto. No formulrio mainform.cs inclua um componente DataGridView e um componente MenuStrip e defina a opo Sair conforme o leiaute abaixo

Agora defina os namespaces que iremos usar neste formulrio : using using using using using using System; System.Collections.Generic; System.Drawing; System.Windows.Forms; MySql.Data.MySqlClient; System.Data;

namespace daoMySQL No evento Load do formulrio inclua o mtodo init() que ir ser usado para acessar o MySQL; void MainFormLoad(object sender, EventArgs e) { init(); } O mtodo 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(); } } } Aps obter a instncia do MySQL efetuamos a conexo e usando um DataAdapter preenchemos um DataTable para exibir o resultado no DataGridView;

E com isso acabamos de acessar o MySQL em uma aplicao Windows Forms usando o provider MySQL Connector/5.1 usando o padro Singleton e obtendo a string de conexo do arquivo de configurao app.config. Pegue o projeto completo aqui: referncias: 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 aplicao MySQL - Operaes bsicas com SQL ASP.NET - Acesso ao MySQL
Jos Carlos Macoratti

daoMySQL.zip

Vous aimerez peut-être aussi