IF não funciona

[code] try{
rs=stmt.executeQuery(“SELECT *FROM usuarios where login =‘paula’”);
while(rs.next()){
if (rs.getString(“senha”).equals(“1234”))
System.out.println(“OK”);

            else
                System.out.println("Nops");
        }
    }catch (Exception e){
        System.out.println("erro \n\n"+ e);

        }[/code]

quando eu executo imprime sempre “Nops” sendo que a senha registrada no banco eh 1234 mesmo…
e agora?

Na Query o * está junto ao FROM … veja se isso não está te atrapalhando.

troca *FROM pra * FROM e vê se vai

Não… continua o mesmo erro…=/

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

Imprime essa senha aí… veja o valor dela. Teste para ver se o banco está retornando corretamente a linha cujo login é o especificado.

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

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:

[code] try {
rs = stmt.executeQuery(“SELECT *FROM usuarios where login =‘paula’”);
while (rs.next()) {
String senha = rs.getString(“senha”);
System.out.println(senha);

			if (senha.equals("1234")) {
				System.out.println("OK");
			} else {
				System.out.println("Nops");
			}
		}
	} catch (Exception e) {
		System.out.println("erro \n\n" + e);
	}

[/code]

Até mais,

será que na base de dados o 1234 pode está com espaço antes ou depois já viu isso?

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 (Exception e){  
            System.out.println("erro \n\n"+ e);  
   
            }

Espero ter ajudado
Fallow

ops … não vi que estavam respondendo …

então … tenta ver se não tem espaços, carateres especiais … etc

Naaada

.

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.

cara ao inves de “senha”, veja o numero da coluna e indique esse numero, as vezes dah certo

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.

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?!

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,

ops …

troca s.toCharArray por senha.toCharArray

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