Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

feliipee

Erro parte de alteração de cadastro

Recommended Posts

O erro q esta dando no meu programa é o seguinte [Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe na instrução UPDATE

aqui a parte do codigo

 

     try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // Procura o Drive do Acess
           Connection con = DriverManager.getConnection("jdbc:odbc:Funcionarios", " ", " ");
           Statement stmt = con.createStatement(); // Objeto do SQL



           String Consnome = jtpesquisar.getText();
           int Cadcod = Integer.parseInt(jtcod.getText());
           String Cadnome = jtnome.getText();
           String Cadendereco = jtendereco.getText();
           int Cadnumero = Integer.parseInt(jtnumero.getText()); 
           String Cadcidade = jtcidade.getText();
           String Caduf = jtuf.getText();
           String Cadsexo = jtsexo.getText();
           String Cadcargo = jtcargo.getText();

           int registro = stmt.executeUpdate("update Funcionario set COD='"+Cadcod+"',Nome='"+Cadnome+"', Endereco='"+Cadendereco+"', Numero='"+Cadnumero+"', Cidade='"+Cadcidade+"', UF='"+Caduf+"', Sexo='"+Cadsexo+"', Cargo='"+Cadcargo+"', where Nome='"+Consnome+"'");
            if (registro != 0) {
                JOptionPane.showMessageDialog(this, " DADOS ALTERADOS");
            } else {
                JOptionPane.showMessageDialog(this, " DADOS NAO ALTERADOS");
            }
       stmt.close();
       con.close();     // fecha a conexao
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(this, "Erro de SQL" + e.getMessage());
        } catch (ClassNotFoundException ex) {
            JOptionPane.showMessageDialog(this, "Driver nao Encontrado");
        }

 

obrigado qualquer ajuda ja é uma grande ajuda hehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

feliipee tenta dar uma olhada no assunto "prepareStatement"pois a arquitetura do seu sistema esta muito confusa e também da forma que você esta fazendo não é mais tão usual pois se não você teria de fazer sempre uma consulta quando quiser "inserir" "deletar" e "atualizar" seus dados entendeu? E outra cria uma classe para a conexão ao seu DB para ficar melhor organizado ae depois você só puxa a conexão

 

um exemplo do uso:

 

Classe Conexão:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Conexao {
   private final String DATABASE_URL ="jdbc:mysql://localhost:8889/banco";
   private final String USERNAME = "root";
   private final String PASSWORD = "root";  
   public static Connection connection = null;  
   public Conexao(){
       try 
       {
           connection = DriverManager.getConnection(DATABASE_URL, USERNAME, PASSWORD);
       }
       catch(SQLException sqlException)
       {
           sqlException.printStackTrace();
       }
   }   
}

 

Classe Consulta:

public class Consulta{
   private Conexao conexao;
   private prepareStatement update = null;
   private boolean connectedToDatabase = false;

   public consulta(){
      try{
          conexao = new Conexao();
          update = conexao.connection.prepareStatement("UPDATE tabela SET campo1 =?, campo2 =?, campo3 =?, campo4 =?, campo5 =?, campo6 =?, campo7=?, campo8=? WHERE id =?");
          connectedToDatabase = true;
      }
       catch(SQLException sqlException)
       {
           sqlException.printStackTrace();
           System.exit(1);
       }
   }
}

Método que executa os Sets:

public int updateCampo(int id,String campo1, String campo2, String campo3, String campo4, String campo5, String campo6, String campo7, String campo8)
   {
       int result =0;
       try
       {
           update.setString(1,campo1);
           update.setString(2,campo2);
           update.setString(3,campo3);
           update.setString(4,campo4);
           update.setString(5,campo5);
           update.setString(6,campo6);
           update.setString(7,campo7);
           update.setString(8,campo8);
           update.setInt(9,id);
           result = update.executeUpdate();
           JOptionPane.showMessageDialog(null,"campo alterado com sucesso!");
           return result;                              
       }

 

Esse seria um exemplo básico de como usar se tiver alguma duvida ou você n quiser usar este método, me manda o erro que da no console completo por favor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.