Erro com Login.. ajuda

3 respostas
U

Por favor… me ajudem com este codigo… naum sei o q está acontecendo de errado…
Ele compila mas qdo aparece o formulario de Login, eu coloco os dados e dpois q pressiono o botão OK aparece um erro informando q naum encontra o nome (nome de acesso)… e depois ele abre o formulario principal normalmente…

private void verificaLogin() {
		
     // variaveis que receberão os dados do form
     String logNome, logSenha, logNovaSenha, logConfirmaSenha;
     String BDSenha;
		
     boolean registro; // recebe os dados vindos do BD
     int result; // retorna "1" se conseguir atualizar a senha
		
    //obtendo os dados do form		
    logNome 	= txtNome.getText();
    logSenha	= txtSenha.getText();
    logNovaSenha 	= txtNovaSenha.getText();
    logConfirmaSenha  = txtConfirmaSenha.getText();
		
    // valida os dados digitados (Login e Senha) do operador
    if (logNome != null) {
			
    String querySenha = "SELECT * FROM operador WHERE OpeLogin LIKE '" + logNome + "%'";
           try {
                   stm = con.createStatement();
                   rs = stm.executeQuery(querySenha);
                   registro = rs.next(); // posiciona no 1º registro
                   BDSenha = rs.getString("OpeSenha");

                   if (logSenha != BDSenha) {
				
                        // emite mensagem de erro e volta o foco no txtNome
                        JOptionPane.showMessageDialog(null, "Nome ou Senha  INCORRETO, tente novamente");
          
                   }
                   else {
					
                   // caso o operador queira trocar senha
						
                  // é verificado se as senhas são "iguais e não nulas"
                            if ((logNovaSenha == logConfirmaSenha) & (logNovaSenha != null) & (logConfirmaSenha != null)) {
						
	                   String queryNovaSenha = "UPDATE operador SET opeSenha = " + logNovaSenha + " WHERE OpeLogin = '" + logNome + "'";
						
	                    try {
								            stm = con.createStatement();
						 		            result = stm.executeUpdate(queryNovaSenha);
								            if (result == 1) {
			System.out.println("Operação realizada com sucesso");
								            }
								            con.commit();
								            stm.close();
		    }
		    catch(SQLException e) {
			e.printStackTrace();
	                    }
	           }
	           else {
	                   // se não forem iguais ou forem nulas dar mensagem de erro
	                   JOptionPane.showMessageDialog(null, "Senhas não conferem ou Campos estão nulos, verifique por favor");

	           }
                   }
           con.commit();
           stm.close();
           }
           catch(SQLException e) {
	e.printStackTrace();
           }
    }
    else {
	JOptionPane.showMessageDialog(null, "Campo Login nulo");
    }
}

se puderem me dar um help eu agradeço muito…

3 Respostas

J

Boa Tarde, Ueti !!!

Analisando apenas o seu método não tem como dizer é isto ou aquilo precisamente, porém posso lhe dar algumas dicas:

  • como o próprio nome do método “verificaLogin()”, seria interessante ter um tipo de retorno sugiro um tipo booleano, pois daí vc tem como tomar uma decisão de continuar ou ficar na mesma janela.
  • outra coisa como vc fez os tratamentos de exceções nunca vão subir erros e o processo vai continuar, deve ser este o motivo que está entrando na próxima janela.
  • a última coisa é a seguinte qdo vc faz um tratamento de exceção utilizando JOptionPane vai abrir uma dialog de mensagem e o processo continua se vc não quiser continuar deve lançar a exceção para interromper o processo.

T+

A

Tenta mudar sua instrucao em SQL para:

String querySenha = "SELECT * FROM operador WHERE OpeLogin LIKE '%"+logNome+"%'";

Nao deveria estar funcionando porque estaria faltando um % na instrucao em SQL. Tenta ai!!! Outra coisa, voce lembrou de declarar um ResultSet para executar sua instrucao em SQL b[/b]?

ResultSet rs = stm.executeQuery(querySenha); 8)

U

E ae galera…! blz?!
muito grato pela ajuda de vcs…
vou fazer o teste… qualquer coisa eu posto outra msg informando se deu certo ou naum…
e valew pelas dicas!!
abraço…

Criado 18 de maio de 2004
Ultima resposta 19 de mai. de 2004
Respostas 3
Participantes 3