Conector MySQL em C Sharp
Autor: Luiz Renato | Publicado: 2015-07-26T14:54:00-03:00


Continuando o tutorial anterior de ODBC em C# Sharp, Agora vamos aprender usando o conector MySQL adquirido no site do MySQL (precisa fazer um login para download). Feito isso é só instalar e escolher como "completo" para ele já colocar as bibliotecas em seus devidos lugares e poderá importar direto da sua IDE sem necessitar ficar procurando arquivos. :)






Vamos lá!



Requerimentos:

Conector MySQL
Conhecimento básico de SQL
Conhecimento básico em C# Sharp
     (ou Java)
Orientação de
     Objetos(import/classes/métodos/funções).
Usar uma IDE
     (SharpDevelop/Visual Studio)
Gerenciador MySQL
     ativado(Service) no Sistema para conectar a servidor localhost (Estou
     usando o MySQL do XAMPP).




Recomendações:



NET Framework 4.0
SharpDevelop 4
Windows 7/8 ou 10
XAMPP









Ativando o MySQL no Sistema Operacional para gerenciar dados SQL:



Painel do XAMPP para ativar o MySQL










Criando um novo projeto "Solução" em SharpDevelop 4 &gt; Files &gt; New Solution &gt; C# &gt; NET Framework 4.0/Applcation Console...



Criando um novo projeto "Solução"






Após criar... Observe que vc expande a arvore e se depara com "References" que são suas bibliotecas importadas, então você clica em cima de "References" com o botão direito do mouse &gt; Add Reference...



Primeira interface após criar o projeto Application Console



Selecione a aba GAC e procure por MySql.Data e depois pressione "Ok", Feito isso já poderá ser usada para desfrutar de suas funções.



Importação da lib MySql.data via Add References







Então usamos&nbsp;MySql.Data.MySqlClient;&nbsp;Vamos apagando o que for desnecessário do modelo pré definido...&nbsp;
Observe que eu estou usando um tema Monokai e o seu deve ser o padrão ou diferente.



Tudo pronto para trabalhar!



Agora vamos meter a mão na massa! O resto dos&nbsp;comentários&nbsp;estão no script! (pode copiar, é código!)



<!-- HTML generated using hilite.me -->

using System;
using MySql.Data.MySqlClient;
//by Luiz R.
namespace ConectMySQL
{
  class Program
  {
    public static void Main(string[] args)
    {
      try{
        MySqlConnection conn = new MySqlConnection("" +
                                      "server=127.0.0.1;" + //ou localhost
                                              //"database=teste;" + //opcional
                                              "uid=root;" + // usuario mysql uid=
                                              "pwd=root"); // senha pwd=
        conn.Open(); // abre a conexão
        MySqlCommand sql = conn.CreateCommand(); //cria novo objeto sql pra comandar
        
        Console.WriteLine("Conexão estabelecida com sucesso!");
        /*
         * TODA MANIPULAÇÃO DO MYSQL É FEITA AKI ANTES DE Close();
        */
        conn.Close(); // fecha conexão
      }catch(Exception){
        Console.WriteLine("Erro ao tentar conectar MySQL.");
      }
      
      Console.ReadKey(true);
    }
  }
}






Completo! Observe atentamente que é diferente do anterior! O conector MySQL sem duvida é muito melhor! Tente comparar!

<!-- HTML generated using hilite.me -->

using System;
using MySql.Data.MySqlClient;
//by Luiz R.
namespace ConectMySQL
{
 class Program
 {
  public static void Main(string[] args)
  {
   try{
    //A VANTAGEM JA COMEÇA NA CONEXÃO, OLHA A FACILIDADE!
    MySqlConnection conn = new MySqlConnection("" +
                                  "server=localhost;" + //ou 127.0.0.1
                                              //"database=teste;" +
                                              "uid=root;" + // usuario mysql uid=
                                              "pwd=root"); //senha pwd=
    conn.Open(); //abre a conexão
    MySqlCommand sql = conn.CreateCommand(); //cria novo objeto sql pra comandar
    
    Console.WriteLine("Conexão estabelecida com sucesso...");
    
    //CRIANDO BANCO DE DADOS "TESTE" SE NÃƒO EXISTIR NO GERENCIADOR MYSQL
    //OBSERVE QUE EM CONECTOR MYSQL EU POSSO EXECUTAR VARIOS COMANDOS AO MESMO TEMPO, EM ODBC NÃO
    
    try{
     sql.CommandText = "" +
         "DROP DATABASE IF EXISTS TESTE;" +
         "CREATE DATABASE IF NOT EXISTS TESTE;" +
         "USE TESTE;";
     sql.ExecuteNonQuery();
     Console.WriteLine("Banco de dados criado com sucesso...");
    }catch(Exception){
     Console.WriteLine("Erro ao tentar criar banco de dados.");
    }
    
    //CRIANDO TABELA "LOGIN" SE NÃƒO EXISTIR NO GERENCIADOR MYSQL/TESTE/?

    try{
     sql.CommandText = "" +
         "CREATE TABLE LOGIN(" +
         "ID INT AUTO_INCREMENT PRIMARY KEY NOT NULL," +
         "NICK VARCHAR(15) NOT NULL," +
         "SENHA INT NOT NULL)";
     sql.ExecuteNonQuery();
     Console.WriteLine("Tabela criada com sucesso...");
    }catch(Exception){
     Console.WriteLine("Erro ao tentar criar tabela.");
    }
    
    //INSERINDO DADOS NO MYSQL/TESTE/LOGIN
   
   try{
    sql.CommandText= "INSERT INTO LOGIN (NICK,SENHA) VALUES ('DARK',123)";
    sql.ExecuteNonQuery();
    Console.WriteLine("Dados inseridos com sucesso...");
   }catch(Exception){
    Console.WriteLine("Erro ao tentar inserir dados.");
   }

    //IMPRIMINDO DADOS DA TABELA MYSQL/TESTE/LOGIN... NO CONSOLE :P
    //OBSERVE A FACILIDADE PARA OBTER DADOS, O CONECTOR OBTEM TUDO COMO STRING
   
   try{
   sql.CommandText = "SELECT * FROM LOGIN;";
   MySqlDataReader get;
   get = sql.ExecuteReader();
   while (get.Read()){
    
    /*string dados = "";
    for (int i = 0; i &lt; get.FieldCount; i++)
     dados += get.GetValue(i).ToString() + ", ";
    Console.WriteLine(dados); OU....*/
    
    string ID = get.GetString("ID");
    string NICK = get.GetString("NICK");
    string SENHA = get.GetString("SENHA");
    Console.WriteLine(ID+", "+NICK+", "+SENHA);
   }
   
   }catch(Exception){
    Console.WriteLine("Erro ao tentar imprimir dados.");
   }

    conn.Close(); //fecha conexão
   }catch(Exception){
    Console.WriteLine("Erro ao tentar conectar MySQL.");
   }
   
   Console.ReadKey(true);
  }
 }
}




Resultado final no console.



Também será feito um tutorial semelhante para Java, em breve!
XAMPP download&nbsp;https://www.apachefriends.org/pt_br/download.html
SharpDevelop 4 download http://www.icsharpcode.net/OpenSource/SD/Download/#SharpDevelop4x



Até mais!! ;D