• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Jpais

Erro sql

3 mensagens neste tópico

Boas hoje surgiu-me um erro que não consigo resolver já passei umas horas a olhar para isto e ainda não consegui resolver por isso venho aqui pedir ajuda...

o código é o seguinte:

try{

            Class.forName("com.mysql.jdbc.Driver");

            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/pap?user=root&password=");

            Statement stm = conn.createStatement();

            ResultSet rc = stm.executeQuery("SELECT COUNT(*) from veiculos where matricula = '" +jTextField1.getText()+ "'");

            rc.next();

           

            int matricul = Integer.parseInt(rc.getString("matricula"));

            System.out.println("Passei");

            if( matricul==0 ){

            stm.executeUpdate ("insert into veiculos ( matricula, marca, modelo, ano, mes) values('" +jTextField1.getText()+"','" + jTextField2.getText() + "','" +jTextField3.getText()+ "','" + jTextField4.getText() + "','" +jTextField5.getText()+"')");

            ResultSet rs = stm.executeQuery("SELECT cod_veiculo from veiculos where matricula like '" +jTextField1.getText()+"'");

                int cod_veiculo = Integer.parseInt(rs.getString("cod_veiculo"));

            stm.executeUpdate("insert into donos( n_cliente, cod_veiculo) values ('" + jTextField6.getText()+ "','" +cod_veiculo+ "')");

            JOptionPane.showMessageDialog(this,"Cliente Inserido com Sucesso", "Cliente", JOptionPane.INFORMATION_MESSAGE);

            jTextField1.setText("");

            jTextField2.setText("");

            jTextField3.setText("");

            jTextField4.setText("");

            jTextField5.setText("");

            jTextField6.setText("");

    }

            else

                JOptionPane.showMessageDialog(this, "Erro","Este carro já se encontra registado!", JOptionPane.ERROR_MESSAGE);

            //avisa que foi inserido com sucesso e poe os valores da textfield a zero

        }

        catch(ClassNotFoundException x)

        {

            System.out.print(x.getMessage()+" :nao encontrei a classe");

            JOptionPane.showMessageDialog(this,"Erro", "Erro", JOptionPane.ERROR_MESSAGE);

        }

        catch(SQLException x)

        {

            System.out.print(x.getMessage());

            JOptionPane.showMessageDialog(this,"Erro no SQL", "Erro", JOptionPane.ERROR_MESSAGE);

            //quando introduzido um numero repetido aparece um alert que avisa que esse numero ja se encontra utilizado

        }

        }

        else

        {

            JOptionPane.showMessageDialog(null,"Ainda existem campos em branco.","Erro", JOptionPane.INFORMATION_MESSAGE);

        } 

o erro que dá é que:

Column 'matricula' not found.

Já visualizei a base de dados e está tudo bem... não consigo perceber porque me dá este erro.

Agradecia que me ajudassem...

[move]Jpais[/move]

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O erro que te dá é nesta linha

  int matricul = Integer.parseInt(rc.getString("matricula"));

não é?

É que o result set efectivamente não tem a coluna matricula pois é um select count(*).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já consegui resolver...

ResultSet rc = stm.executeQuery("SELECT COUNT(*) as contagem from veiculos where matricula = '" +jTextField1.getText()+ "'");

rc.next();

int matricula =Integer.parseInt(rc.getString("contagem"));

A solução era atribuir uma variável onde o sql iria guardar a contagem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora