Sempre que postar codigo, coloca ele entre as tags CODE. Tem um botão para isso acima do campo onde vc digita a mensagem.
Fica muito mais fácil para os usuarios do forum lerem seu codigo.
Tipo assim:
Statement st = con.createStatement();
ResultSet rs2 = st.executeQuery("SELECT * FROM AgendaTel WHERE Nome = " + nome);
rs2.next();
txtNome.setText(rs2.getString("Nome"));
txtTelefone.setText(rs2.getString("Telefone"));
txtEmail.setText(rs2.getString("Email"));
Tenta assim:
ResultSet rs2 = st.executeQuery("SELECT * FROM AgendaTel WHERE Nome = " + "'" + nome + "'");
Fala ai crvribei,
vc pode usar a forma abaixo para para poder adicionar mais um String no seu SQL, usando o metodo setString do prepareStatement. O primeiro valor é um indice referente a primeira ? e o segundo valor é o valor que a ? deve assumir, no caso do codigo abaixo, o valor da variavel nome
stmt = con.prepareStatement("SELECT * FROM AgendaTel WHERE Nome = ? AND Sobrenome=?");
//Atribuindo valor as ? por posição
stmt.setString(1, nome);
stmt.setString(2, sobrenome);
//Fim
rs = stmt.executeQuery();
if(rs.next()) {
txtNome.setText(rs2.getString("Nome"));
txtTelefone.setText(rs2.getString("Telefone"));
txtEmail.setText(rs2.getString("Email"));
}
stmt.close();
close();
O melhor ainda é usar o PreparedStatement, como indicou o colega acima. Usando concatenação e aspas simples diretamente seu código irá dar crash com strings que contenham o apóstrofe em seu interior, como John’s Pub. Além disso, um usuário maligno e programador possa fechar aspas e injetar um SQL no meio. O PreparedStatement também é mais eficiente para campos de data, onde você pode se abster de conhecer o formato do banco de dados, deixando o código mais facilmente portável.
Sem falar que o código fica muito mais fácil de ler.
Outra coisa. Em pesquisa de Strings considere com carinho a possibilidade de usar LIKE no lugar de =. O = exigirá que o usuário o nome correto EXATAMENTE como está cadastrado no banco.
Aqui tem uma discussão que cobre boa parte dos problemas encontrados em uma ou outra abordagem.
Realmente statement só em alguns casos específicos.
Tive problemas com uma query complexa (e extensa) que dava timeout usando Prepared. Só foi resolvido com o uso do Statement (uma aberração, diga-se de passagem).