Na Query o * está junto ao FROM … veja se isso não está te atrapalhando.
leoviniga
troca *FROM pra * FROM e vê se vai
P
paulat
Não… continua o mesmo erro…=/
P
paulat
O erro não está na hora de buscar os dados, pois ja testei isso…
ele busca, mas na hora de conferir se as senhas são iguais da erro
hudsonpereira
Imprime essa senha aí… veja o valor dela. Teste para ver se o banco está retornando corretamente a linha cujo login é o especificado.
P
paulat
Foi exatamente assim que eu tentei, a hora que eu imprimei deu 1234…
mas na hora de conferir se estão iguais, mesmo estando, o sistema diz que está errado
danilomunoz
paulat ... gostei do título do post !?
... é muito difícil um IF não funcionar ... faz muito tempo que ele existe e ele é bem "veiáco" no assunto ... rs ... veja a condição sempre!!
Adicione esta linha ao seu código e mande o resultado de volta:
try{rs=stmt.executeQuery("SELECT *FROM usuarios where login ='paula'");while(rs.next()){Stringsenha=rs.getString("senha");System.out.println(senha);if(senha.equals("1234")){System.out.println("OK");}else{System.out.println("Nops");}}}catch(Exceptione){System.out.println("erro \n\n"+e);}
Até mais,
M
marcelo.garces
será que na base de dados o 1234 pode está com espaço antes ou depois já viu isso?
paulo1911
Olá paula,
tente o seguinte:
1º mude a sql separando o asterisco do from;
E tente isso:
try{rs=stmt.executeQuery("SELECT *FROM usuarios where login ='paula'");while(rs.next()){if(rs.getString("senha").toString().equals("1234")){System.out.println("OK");}else{System.out.println("Nops");}}catch(Exceptione){System.out.println("erro \n\n"+e);}
Espero ter ajudado
Fallow
danilomunoz
ops … não vi que estavam respondendo …
então … tenta ver se não tem espaços, carateres especiais … etc
P
paulat
Naaada
P
paulat
.
M
marcelo.garces
O nosso amigo danilomunoz só acrescentou a chave do if e else mas acho que ele não sabia que quando usamos apenas um linha de código não é obrigatorio colocar chaves funciona da mesma forma porém eu prefiro usar chaves por boas práticas.
Hewerson
cara ao inves de “senha”, veja o numero da coluna e indique esse numero, as vezes dah certo
danilomunoz
ops … sei sim! arrumei por boas práticas mesmo …
E coloquei o rs.getString(“senha”) em uma variável para imprimir e reusar no if também.
P
paulat
continua sem funcionar e não faz sentido…
deveria estar funcionando…quando peço para imprimir a senha da 1234 mesmo, sem espaços e nada de estranho… simplesmente exatamente igual ao que esta no if… e ai?!
danilomunoz
coloca isso no teu código por favor:
String senha = rs.getString("senha");
for (char c : s.toCharArray()) {
System.out.print(c + "(" + (int)c + ") ");
}
System.out.println();
E manda o resultado pra nós …
Até mais,
danilomunoz
ops …
troca s.toCharArray por senha.toCharArray
P
paulat
Melhor dexar pra lá…
acabei de descobrir que com quarquer outro login da certo…
não sei ainda pq com esse não da… mas ok
Obrigada mesmo assim
P
paulat
hahahaha Descobri… tinah espaço depois, coisa que eu nao conseguia identificar sem prestar atenção…
Muito obrigada!
O método getString() já retorna uma String. Não tem porque chamar toString() nele.
Tente fazer o if assim:
if(rs.getString("senha").trim().equals("1234"))
Se isso funcionar, é pq seu banco de dados adicionou espaços ao final da senha. Alguns bancos fazem isso para campos do tipo string (como VARCHAR).
Se isso não funcionar, tente usar um depurador para ver exatamente o que está acontecendo.