Pegando o resultado do Select e comparando com variável

13 respostas Resolvido
java
Alyesson

Olá,

Tenho o código abaixo:

nome = usuario_portaria.getText();
    
    conecta_portaria = new ConexaoBD();
    conecta_portaria.conecta();
    String sql = "Select * from usuário_port where usuario like '"+usuario_portaria.getText()+"' and administrador like 'Sim'";
    conecta_portaria.executeSQL(sql);
    
    try{
        
    if(conecta_portaria.resultset.next()){
        
        modulo_portaria.setText("Módulo Portaria Administrador"); 
    }
    else{
        modulo_portaria.setText("Módulo Portaria Usuário");
    }
    }catch(SQLException erro){}

Eu quero pego o resultado do meu “conecta_portaria.executeSQL(sql)” e comparar com a variável nome, que é do tipo String.

Porque se o resultado bater como que ta no meu nome = usuario_portaria.getText() ele abre a tela de administrador, se não bater ele abre a tela do usuário…

Estou com dúvida quanto a isso.

13 Respostas

rodriguesabner
....
try{
......
String x = conecta_portaria.resultset.getString("nome_da_coluna");
if(nome.equals(x)){
   //entra no sistema
} else {
  //n entra
}

Só uma dúvida:

Você está conectando com o módulo guarita da Linear HCS?

Alyesson

Não funciona esse modelo que passou, eu tinha tentado isso antes tmbm, dessa forma. Não sei o que seria guarita Linear HCS.

rodriguesabner

mas nao funcionou pq deu erro? qual o motivo?

Alyesson

o TextFiled usuario_portaria.getText() não mostra nada, fica em branco.

Qual é a lógica? Eu tenho um tabela onde tenho meus usuários, e lá tem uma coluna chamada “administrador” que é preenchida com “Sim” ou “Não”. Quando o usuário logar vai aparecer o nome dele no campo “usuário conectado”, esse método que coloquei a cima, ele vai pegar o nome do usuário, verificar pelo SQL se ele é um usuário Admin, se for ai ele vai exibir os campos de Admin e mostrar como “módulo portaria Administrador”, se não for "vai mostrar como “Módulo usuário”

rodriguesabner

Ahhhhhh, vc primeiro tem que passar a String do usuário na tela de Menu.

Login ->
usuario
senha

Menu ->
recebe usuario do Login

aí com a String do usuário em mãos, vc faz a verificação, vc pode passar via construtor mesmo.

Alyesson

Já fiz isso, o usuário vai pra segunda tela onde faz essa verificação, o problema ta na tela que é do usuário, a verificação não ta acontecendo lá…

rodriguesabner

blz, mas vc nao ta falando pq não ta indo… Vc tbm nao ta imprimindo nenhuma msg de erro, coloca esse código abaixo e fala que erro aparece.

String sql = "SELECT * FROM usuário_port WHERE usuario LIKE '" + usuario_portaria.getText() + "' AND administrador='Sim'";
        conecta_portaria.executeSQL(sql);
        try {
            if (conecta_portaria.resultset.next()) {
                modulo_portaria.setText("Módulo Portaria Administrador");
            } else {
                modulo_portaria.setText("Módulo Portaria Usuário");
            }
        } catch (SQLException erro) {
            erro.printStackTrace();
        }
Alyesson

Já tinha feito esse código tmbm e ele só mostra como “Módulo Portaria Usuário”, é como se eles estivesse pulando essa parte aqui:

if (conecta_portaria.resultset.next()) {

modulo_portaria.setText(Módulo Portaria Administrador);

}
rodriguesabner

joga essa sql no seu banco de dados e ve qual dado retorna

Alyesson

Já fiz, ele retornou Módulo Portaria Usuário

rodriguesabner

Como retornou isso, se no banco só tem Sim e Não???

Alyesson

Isso que estou tentando descobrir, ele só me mostra isso, e no banco o teste que faço com o usuário está como Sim, na coluna Admin. Ta muito estranho isso. não sei o que fazer mais, todas possibilidades que sei esgotaram-se.

Alyesson
Solucao aceita

Consegui resolver o problema dentro da Classe LogOn, coloquei dois if dentro do try e fiz a comparação dos SQL em cada If, e deu certo… fechando tópico, e obrigado pela ajuda.

Criado 25 de setembro de 2019
Ultima resposta 30 de set. de 2019
Respostas 13
Participantes 2