domingo, 2 de agosto de 2015

Criando e Manipulado Banco de Dados Local e Servidor Derby em Java

Posted by Luiz Renato on 20:40

Conectando e manipulando Aparche Derby em Java e Java DB usando apenas recursos necessários para realizar a interação Local (Embedded) e Serviodor (Web /Java DB/Service...). O NetBeans também é servidor/gerenciador de dados e por isso esse tutorial se aplica também para Oracle, MySQ e etc... O Próximo será para MySQL.

O que é o Derby?

Apache Derby é um sistema de gerenciamento de banco de dados relacional Java que pode ser embutido em programas Java e usado para processamento de transações online. Consome apenas 2 MB de espaço em disco.1 O Apache Derby é desenvolvido como um projeto open source sob a Apache 2.0 licence. O Derby era anteriormente distribuido como IBM Cloudscape. Atualmente é distribuído como Sun Java DB.

Vamos lá!

Requerimentos:
  • *Conhecimento básico de SQL
  • *Conhecimento básico em Java.
  • *Orientação de Objetos(import/classes/métodos/funções).
  • *Usar uma IDE (NetBenas/Eclipse).
  • Gerenciador Derby ativado(Service ou NetBeans aberto) no Sistema para conectar a Servidor localhost.(Local DB não precisa de nada disso)

Recomendações:
  • JDK 1.8*
  • JRE 1.8*
  • NetBeans 8.*

  • Criando um novo projeto em NetBeans 8.*> Arquivo > Novo Projeto > Java > Aplicação Java...
Criando novo projeto Java no NetBeans


  • Após criar...
Modelo class principal Java by Luiz R.

  • Vamos logo importar o Derby.jar e você pode fazer isso de dentro do seu NetBeans ou download do Site do Apache Derby. Para importação offline, vc clica com o botão direito em Bibliotecas > Adicionar Biblioteca > importar > Driver JDBC do Java DB, com isso ele vai importar o pacote Derby.jar, Derbycliente.jar e Derbyweb.jar. Para este tutorial você só precisa do Derby.jar.  Pode fazer também selecionando "Adicionar JAR/Pasta" ao invés de biblioteca e importar o derby.jar.
Importando bibliotecas no Java

  • Vamos apagando o que for desnecessário do modelo pré definido... Até ficar assim:
  • Observe que eu estou usando um tema Monokai com modelo já modificado por mim e o seu deve ser o padrão/diferente, caso esteja interessado eu disponibilizo ele aqui.
Iniciando a conexão SQL

  • Observe que eu acrescentei import java.sql.*; que é uma importação padrão, porém o "*" quer dizer que quero usar todas a classes do java.SQL,
  • Try/Catch será muito importante porque o Java não tolera e o programa vai tentar executar dentro do bloco try, se ocorrer um erro fatal o programa não vai mostrar bugs nem cancelamento de processo, ele vai dar catch e dizer que ocorreu um problema. Exeption/SQLExeption pode ser incrementada com uma variável pra armazenar o erro ex: (Exception Err), Err vai ser a variável. 
  • Criei um objeto(conn) que estabeleceu uma conexão com o Embedded Driver "org.apache.derby.jdbc.EmbeddedDriver" através do Derby.jar  usando a String "jdbc:derby:.\\LocalDB;create=true;" como parâmetros para criar o Banco de dados Local DB. (pode copiar, é código!).

package conectderby;
import java.sql.*;
//by Luiz R.
public class ConectDerby
{
    public static void main(String[] args)
    {
        Connection conn=null;
        
        try{
            Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
            
            conn = DriverManager.getConnection("jdbc:derby:.\\LocalDB");
            System.out.println("Conectado com sucesso...");
            
        }catch(ClassNotFoundException | SQLException Err){
            System.out.println("Erro ao tentar conectar em Bando de dados localdb... "+Err);
        } 
        
        //PROXIMO PASSO COM ERRO OU NÃO..
        
        try{
            if(conn==null){
                System.out.println("Criando bando de dados local...");
                conn = DriverManager.getConnection("jdbc:derby:.\\LocalDB;create=true;");                            
            }
            
            Statement sql = conn.createStatement();
            
            System.out.println("Banco de dados LocalDB criado com sucesso...");
            
            /*
            DAKI PRA BAIXO ANTES DE close() PODE MANIPULAR TODO O DERBY EM SQL
            sql.executeUpdate("CREATE/INSERT/DELETE/ETC..."); PARA EXECUTAR COMANDOS QUE ATUALIZEM A TABELA
            sql.executeQuery("SELECT..."); PARA OBTER DADOS DA TABELA E IMPRIMIR A MATRIZ EM UM LOOPING
            */
            
            conn.close();
            
        }catch(Exception Err){
            System.out.println("Ocorreu um erro. "+Err);
        }
    }
}
  • Será criado 2 aquivos no diretório de onde esta sendo executado o console do Java (.\\LocalDB), um vai ser a pasta do Banco de dados "LocalDB" e o outro é um log derby.txt. Se for uma compilação.jar em "dist" é criado no mesmo diretório(dentro de dist) a na lib(da dist) você só vai precisar do Derby.jar
Local onde se instala o Banco de Dados pelo console do Java


  • Observe que criei um outro objeto que chamei de sql para executar os comandos SQL através de executeUpdate(); Se for para ler você substitui por executeQuery(); através de um looping para poder obter dados da matriz table.

package conectderby;
import java.sql.*;
/*
ou... só os componentes necessarios...
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
*/
//by Luiz R.
public class ConectDerby
{
    public static void main(String[] args)
    {
        //AQUI VAMOS DECLARAR A CONEXÃO CHAMANDO DE "conn" PARA MELHOR ORGANIZAÇÃO
        Connection conn=null;
        
        try{
            //DETECTANDO CLASS DRIVER DERBY...
            Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
            
            //ESTABELECENDO CONEXÃO AO BANCO DE DADOS LocalDB...
            conn = DriverManager.getConnection("jdbc:derby:.\\LocalDB");
            System.out.println("Conectado com sucesso...");
            
        }catch(ClassNotFoundException | SQLException Err){
            System.out.println("Erro ao tentar conectar em Bando de dados localdb... "+Err);
        } 
        
        //PROXIMO PASSO COM ERRO OU NÃO..
        
        try{
            //CRIANDO BANCO DE DADOS LOCAL SE A CONEXÃPO "conn" FOI NULL-VAZIA(NÃO ENCONTRADA)
            //APENAS ACRESCENTAR create=true;
            if(conn==null){
                System.out.println("Criando bando de dados local...");
                conn = DriverManager.getConnection("jdbc:derby:.\\LocalDB;create=true;");                            
            }
            
            Statement sql = conn.createStatement();
            
            //CRIANDO TABELA "LOGIN" NO DERBY
            /*OBSERVE COMO É O AUTO_INCREMENT DO DERBY, É TODO ESSE MONSTRO:
            GENERATED ALWAYS AS IDENTITY(START WITH 1, INCREMENT BY 1)
            */
            
            try{
                sql.executeUpdate(""
                        + "CREATE TABLE LOGIN("
                        + "ID INT GENERATED ALWAYS AS IDENTITY(START WITH 1, INCREMENT BY 1) PRIMARY KEY NOT NULL,"
                        + "NICK VARCHAR(15) NOT NULL,"
            + "SENHA INT NOT NULL)");
                System.out.println("Tabela criada com sucesso...");
            }catch(Exception Err){
                System.out.println("Erro ao tentar criar tabela. "+Err);
            }
            
            //INSERINDO DADOS NO DERBY/LOGIN
            
            try{
                sql.executeUpdate(""
                        + "INSERT INTO LOGIN (NICK,SENHA) VALUES "
                        + "('Dark',123456),"
                        + "('Goku',123),"
                        + "('Dracula',666)");
                System.out.println("Dados inseridos com sucesso...");
            }catch(Exception Err){
                System.out.println("Erro ao tentar inserir dados. "+Err);
            }
            
            //IMPRIMINDO DADOS DA TABELA DERBY/LOGIN... NO CONSOLE :P
            //PERBECA EM JAVA, EU POSSO DETERMINAR SE QUERO INT COMO STRING EX: ID E SENHA
            
            try{
                ResultSet get = sql.executeQuery("SELECT * FROM LOGIN");
                
                while(get.next()){                              
                    int ID = get.getInt("ID");
                    String NICK = get.getString("NICK");
                    String SENHA = get.getString("SENHA");            
                    System.out.println(ID+", "+NICK+", "+SENHA);
                    //System.out.printf("%d, %s, %s\n", ID,NICK,SENHA); //format ;D
                }
            }catch(Exception Err){
                System.out.println("Erro ao tentar imprimir dados. "+Err);
            }
            
            conn.close();
            
        }catch(Exception Err){
            System.out.println("Ocorreu um erro. "+Err);
        }
    }
}
Console após executar o código acima

  • Para conectar em Servidores você apenas vai usar a String "jdbc:derby://host:port//DB;user=?;password=?"
  • Observe que em Servidor é ainda mais simples, não precisa da class embedded driver.

package conectderby;
import java.sql.*;
//by Luiz R.
public class ConectDerby
{
    public static void main(String[] args)
    {
                
        try{           
            //PARAMETROS("jdbc:derby://host:port//DB;user=?;password=?");
            Connection conn = DriverManager.getConnection(""
                    + "jdbc:derby://localhost:1527/TESTE;"
                    + "user=root;"
                    + "password=root");

            System.out.println("Conectado com sucesso...");
            
            Statement sql = conn.createStatement();
            
            /*
            DAKI PRA BAIXO ANTES DE close() PODE MANIPULAR TODO O DERBY/JavaDB EM SQL
            sql.executeUpdate("CREATE/INSERT/DELETE/ETC..."); PARA EXECUTAR COMANDOS QUE ATUALIZEM A TABELA
            sql.executeQuery("SELECT..."); PARA OBTER DADOS DA TABELA E IMPRIMIR A MATRIZ EM UM LOOPING
            */
            
            conn.close();
            
        }catch(Exception Err){
            System.out.println("Ocorreu um erro. "+Err);
        }
    }
}
  • Em NetBeans 8.* > selecione a aba "Serviços" > expanda "Bancos de Dados" > clique com o botão direito em "Java DB" > Iniciar Servidor e depois > Criar Banco de Dados... Espere alguns segundos e vai criar como no exemplo: jdbc:derby://localhost:1527/TESTE [root em ROOT] , (se clicar nas propriedades do seu banco de dados pode pegar o URL dele e colar no seu script).
Criando Banco de Dados no Java DB
  • Após criar o Banco de dados no Java DB do NetBeans 8.* e manter o Servidor ligado, você já pode executar seu script pra conectar e manipular ele...

package conectderby;
import java.sql.*;
/*
ou... só os componentes necessarios...
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
*/
//by Luiz R.
public class ConectDerby
{
    public static void main(String[] args)
    {
                
        try{           
            //PARAMETROS("jdbc:derby://host:port//DB;user=?;password=?");
            Connection conn = DriverManager.getConnection(""
                    + "jdbc:derby://localhost:1527/TESTE;"
                    + "user=root;"
                    + "password=root");
            System.out.println("Conectado com sucesso...");
            
            Statement sql = conn.createStatement();
            
            //CRIANDO TABELA "LOGIN" NO JavaDB/TESTE
            /*OBSERVE COMO É O AUTO_INCREMENT DO DERBY, É TODO ESSE MONSTRO:
            GENERATED ALWAYS AS IDENTITY(START WITH 1, INCREMENT BY 1)
            */
            
            try{
                sql.executeUpdate(""
                        + "CREATE TABLE LOGIN("
                        + "ID INT GENERATED ALWAYS AS IDENTITY(START WITH 1, INCREMENT BY 1) PRIMARY KEY NOT NULL,"
                        + "NICK VARCHAR(15) NOT NULL,"
            + "SENHA INT NOT NULL)");
                System.out.println("Tabela criada com sucesso...");
            }catch(Exception Err){
                System.out.println("Erro ao tentar criar tabela. "+Err);
            }
            
            //INSERINDO DADOS NO JavaDB/TESTE/LOGIN
            
            try{
                sql.executeUpdate(""
                        + "INSERT INTO LOGIN (NICK,SENHA) VALUES "
                        + "('Dark',123456),"
                        + "('Goku',123),"
                        + "('Dracula',666)");
                System.out.println("Dados inseridos com sucesso...");
            }catch(Exception Err){
                System.out.println("Erro ao tentar inserir dados. "+Err);
            }
            
            //IMPRIMINDO DADOS DA TABELA JavaDB/TESTE/LOGIN... NO CONSOLE :P
            //PERBECA EM JAVA, EU POSSO DETERMINAR SE QUERO INT COMO STRING EX: ID E SENHA
            
            try{
                ResultSet get = sql.executeQuery("SELECT * FROM LOGIN");
                
                while(get.next()){                              
                    int ID = get.getInt("ID");
                    String NICK = get.getString("NICK");
                    String SENHA = get.getString("SENHA");            
                    System.out.println(ID+", "+NICK+", "+SENHA);
                    //System.out.printf("%d, %s, %s\n", ID,NICK,SENHA); //format ;D
                }
            }catch(Exception Err){
                System.out.println("Erro ao tentar imprimir dados. "+Err);
            }
            
            conn.close();
            
        }catch(Exception Err){
            System.out.println("Ocorreu um erro. "+Err);
        }
    }
}
  • Se quiser pode confirmar e brincar de SQL com o editor de script SQL do NetBeans.

Visualização do Banco de Dados após ter o sript executado


  • O próximo tutorial será bem semelhante para MySQL em Java.

Até mais!! ;D

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

sábado, 25 de julho de 2015

Conectando ODBC e MySQL com C Sharp

Posted by Luiz Renato on 18:58

Conectando e manipulando SQL com uma conexão global para qualquer Banco de Dados / Driver de gerenciadores que seguem o padrão ODBC(Open Database Connectivity). Usando apenas recursos necessários para realizar a interação.

Vamos lá!

Requerimentos:
  • 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 SQL 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:

Ativando o Apache e o MySQL no XAMPP

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

Criando Projeto no SharpDevelop 4

  • Após criar...

Pineira interface criada pelo modelo (Já configurado por mim)

  • Vamos apagando o que for desnecessário do modelo pré definido... Até ficar assim (pode copiar, é código):
  • Observe que eu estou usando um tema Monokai e o seu deve ser o padrão ou diferente.


using System;
using System.Data.Odbc;
//by Luiz R.
namespace ConectODBC
{
 class Program
 {
  public static void Main(string[] args)
  {
   try{
    
   }catch(Exception){
    
   }
   
   Console.ReadKey(true);
  }
 }
}

  • Observe que eu acrescentei using System.Data.Odbc; que é uma importação padrão,
  • Try/Catch será altamente importante porque o programa vai tentar executar dentro do bloco try, se ocorrer um erro fatal o programa não vai mostrar bugs nem travamentos, ele vai dar catch e dizer que ocorreu um problema. Exeption pode ser incrementada com uma variável pra armazenar o erro ex: (Exception Err), Err vai ser a variavel. 
  • Também temos o comando Console.ReadKey(true); para manter o console e ele não fechar rapidamente após as execuções.

using System;
using System.Data.Odbc;
//by Luiz R.
namespace ConectODBC
{
 class Program
 {
  public static void Main(string[] args)
  {
   try{
       OdbcConnection conn = new OdbcConnection("" +
                      "Driver={MySQL ODBC 5.3 ANSI Driver};" +
                      "server=localhost;" +
                      "uid=root;" +
                      "pwd=root;" +
                      "Option=2");
       conn.Open();
       OdbcCommand sql = conn.CreateCommand();
       Console.WriteLine("ODBC Conectado com sucesso...");
       /*
       TUDO daki pra baixo você faz o que quiser em SQL antes de dar Close();

       */
       conn.Close();
       }catch(Exception){
       Console.WriteLine("Erro ao tentar conectar ao ODBC");
       }
   
   Console.ReadKey(true);
  }
 }
}

  • Criei um objeto(conn) que estabeleceu uma conexão com meu gerenciador SQL(MySQL) através do Driver={MySQL ODBC 5.3 ANSI Driver};  usando a String "Driver={MySQL ODBC 5.3 ANSI Driver};server=localhost;uid=root;pwd=root;Option=2" para MySQL.

Não Testados:
  • A única diferença está na ai, por exemplo para SQL Server a string poderia ficar assim: "DRIVER=SQL Server Native Client 11.0;Trusted_Connection=Yes;SERVER=(localdb)\v11.0;Description=LocalDB;" Ou depende mo método de conexão se é via server host 
  • Microsoft Access "Driver={Microsoft Access Driver(*.mdb, *.accdb)};DBQ=C:\\Users\\Administrator\\Desktop\\New folder\\MatchDetails.accdb;"

Após isso, você abre Open(); e cria um outro objeto que vou chamar de sql para finalmente executar os comandos SQL. Observe que você manipula os comandos SQL através de CommandText e executa sempre com ExecuteNonQuery(); Se for para ler você substitui por ExecuteReader(); através de um looping para poder obter dados da matriz table.


using System;
using System.Data.Odbc;
//by Luiz R.
namespace ConectODBC
{
  class Program
  {
    public static void Main(string[] args)
    {
      try{
        OdbcConnection conn = new OdbcConnection("" +
                         "Driver={MySQL ODBC 5.3 ANSI Driver};" +
                         "server=localhost;" +
                         "uid=root;" +
                         "pwd=root;" +
                         "Option=2");
        conn.Open();
        OdbcCommand sql = conn.CreateCommand();
      
      //CRIANDO BANCO DE DADOS "TESTE" NO GERENCIADOR MYSQL
      
      try{
        sql.CommandText = "DROP DATABASE IF EXISTS TESTE;";
        sql.ExecuteNonQuery();
        sql.CommandText = "CREATE DATABASE IF NOT EXISTS TESTE;";
        sql.ExecuteNonQuery();
        sql.CommandText = "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 IF NOT EXISTS 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',123456)";
        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
    
      try{
      sql.CommandText = "SELECT * FROM LOGIN;";
      OdbcDataReader get = sql.ExecuteReader();
      while (get.Read()){
        
        string dados = "";
        for (int i = 0; i < get.FieldCount; i++)
          dados += get.GetValue(i).ToString() + ", ";
        Console.WriteLine(dados);
      }
      
      }catch(Exception){
        Console.WriteLine("Erro ao tentar imprimir dados.");
      }
      
      conn.Close();
      
      }catch(Exception){
        Console.WriteLine("Erro ao tentar conectar ao ODBC");
      }
      
      Console.ReadKey(true);
    }
  }
}
Console do C# após executar o código acima.

  • Vamos confirmar no gerenciador:

Verificação do Gerenciador via Apache http://localhost/phpmyadmin/



Até mais!! ;D

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

Procurar