[Resolvido]Erro no SQL select onde?

5 respostas
C

Alguém poderia me mostrar onde está o erro?

public void buscaPergunta(int id) {
 Perguntas p1 = new Perguntas();
    try {

            String sql = "Select Perguntas from Questoes where idQuestoes =?";
            PreparedStatement stmt;

            stmt = conexao.prepareStatement(sql);
            stmt.setInt(1, id);

            ResultSet rs;
            rs = stmt.executeQuery(sql);
            while (rs.next()) {
                    p1.setPergunta(rs.getString("Perguntas"));
                    JOptionPane.showMessageDialog(null,p1.getPergunta());
            }

            stmt.close();
            rs.close();
          } catch (SQLException ex) {
           //ex.printStackTrace();
             JOptionPane.showMessageDialog(null,ex);
        }

}

O erro que aparece:
"you have an error in your SQL syntax;check the manual that corresponds to your MYSQL server version for the rigth syntax to use near '?' at line 1.

5 Respostas

Luciano_Lopes

você selecionou apenas o campo “perguntas” e esta fazendo uma condição ao campo “questoes” que não foi chamado no sql,faz assim:

select perguntas,idquestoes from questoes where idquestao=?

A

O problema não é isso não.

O erro está acontecendo por causa da linha 12. Ele está mandando executar o comando do jeito que está armazenado na variável sql. O correto aí é fazer assim:

C

Ué… mais já está assim HJ:

ResultSet rs; rs = stmt.executeQuery(sql);

Acredito que o problema não seja esse sitado pelo luciano pois se eu colocar where idQuestao = 1 funciona normalmente.

romarcio
O seu problema é realmente o citado pelo ADEMILTON
try {  
  
            ...
  
            ResultSet rs;  
            rs = stmt.executeQuery();  
            while (rs.next()) {  
                    p1.setPergunta(rs.getString("Perguntas"));  
                    JOptionPane.showMessageDialog(null,p1.getPergunta());  
            }  
  
            ...
        }
O correto é
rs = stmt.executeQuery();
e não
rs = stmt.executeQuery(sql);
C

@romarcio entendi! deu certo!

valew!!

Criado 25 de maio de 2011
Ultima resposta 26 de mai. de 2011
Respostas 5
Participantes 4