Problemas com query

3 respostas
magmete

Galera tudo bom ?

Estou precisando de uma ajuda. Estou tentando executar uma consulta no Sql Server via Java, mas a minha query não está retornando nenhuma linha, embora quando executo ela direto no banco está tudo certo. Queria saber se podem me dizer o que estou fazendo de errado. Este é meu código.
private void bpesquisarMouseClicked(java.awt.event.MouseEvent evt) {                                        
        Connection con;
        Statement stmt;
        String query="select nome,cpf,c.tipo,saldo from conta c,cliente "
                + "where c.cpfcliente=cliente.cpf and c.numero="+tconta.getText().trim()+
                " and c.numagencia ="+tagencia.getText().trim();
        String acesso="jdbc:sqlserver://localhost:1433;databaseName=BANCO",login="magno",senha="123456";
        try
        {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        }
        catch(java.lang.ClassNotFoundException e)
        {
            JOptionPane.showMessageDialog(null,"Drive Falhou");
        }
        try
        {
            con= DriverManager.getConnection(acesso,login,senha);
            stmt=con.createStatement();
            ResultSet rs = stmt.executeQuery(query);
            JOptionPane.showMessageDialog(null,"Query= "+query);
            lnome.setText("Nome:"+rs.getString("nome"));
            stmt.close();
            con.close();
        }
        catch(SQLException ex)
        {

            JOptionPane.showMessageDialog(null,ex.getMessage());

        }

    }

tconta e tagencia são classes jTextfield.

Agradeço, como sou novo em Java não sei se posso trabalhar com junção.

3 Respostas

vinnysoft

Já tentou colocar aspas simples ’ ?

exemplo: c.numero=‘10’ and c.numagencia=‘2033’

Tenta tambem converter pra inteiro, já que está pegando o JTextField como texto.

jweibe

Na sua linha 22 faça o seguinte:

while(rs.next()){
   lnome.setText("Nome:"+rs.getString("nome"));
}

Ah… e em vez de você ficar concatenando valores na sua query, usa o PreparedStatement e passa os valores via curinga (?).

magmete

Descobri pessoal.
Na verdade o erro não estava na query e sim na maneiro como eu estava regatando o valor da variável rs do tipo ResultSet.
Coloquei dentro de uma laço while e funcionou.

while(rs.next()){ lnome.setText("Nome: "+rs.getString("nome")); }

Grato aos que tentaram me ajudar.

Criado 14 de abril de 2011
Ultima resposta 15 de abr. de 2011
Respostas 3
Participantes 3