domingo, 26 de julho de 2015

Conector MySQL em C Sharp

Posted by Luiz Renato on 14:54

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 > Files > New Solution > C# > 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 > 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 MySql.Data.MySqlClient; Vamos apagando o que for desnecessário do modelo pré definido... 
  • 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 comentários estão no script! (pode copiar, é código!)


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!

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 < 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.


Até mais!! ;D

0 comentários:

Postar um comentário

  • RSS
  • Delicious
  • Digg
  • Facebook
  • Twitter
  • Linkedin

Procurar