[resolvido]if é true mas seu codigo nao é executado

5 respostas
P

oi
tenho um bloco de codigo em q uso varios if’s para pesquisar por varios itens no banco mas independente do q eu coloco nos jtextfields e pesquisa apenas pelo item do primeiro if e mesmo o a condição do if sendo verdadeira ele não executa o bloco de codigo do if
=[

ah este evento esta na acao de um botao
tipo no console fica assim quando eu pesquiso pelo primeiro if

t1 9 t0 t2 . . - t3 select nome,cpf,matricula from aluno where Id='9' true

alguem pode me ajudar a encontrar o erro?
obg

5 Respostas

pmlm

O resultado.next() avança o cursor uma linha. Como o teu SQL só tem um resultado, no print, avança para a primeira linha e devolve true. No if vai avançar outra linha (que não existe e chega ao fim) e assim devolve false.

P

oi pmlm!
hmm agora entendi pq nao esta executando o bloco de codigo do if…
:oops: :oops:
mas tu poderias me explicar como faço para usar o resultado da pesq. entao?
tipo a linha q for verdadeira??eu tiro o print?
obg

ganondorfan

Bom, você ta usando um “System.out.println(resultado.next())” isso não só imprime ele, como faz o ponteiro andar pra frente no seu ResultSet, ou seja, quando vc aciona ele novamente dentro da logica do “if” ele vai estar um passo adiante, e como eu percebi, você ta fazendo um select por “ID” ou seja, provavelmente se você obter algo, sera um só resultado.

Outro detalhe que me chamou atenção nos seus IF’s, um JTextField caso o proprio campo não seha nulo sempre te retorna uma String vazia ("") ou seja, em vez de comparar com:

(fulano.getText()!=null)
// compare com
(!fulano.getText().equals(""))

Outra dica importante, é utilizar o PreparedStatement em vez do Statement e converter o valor do ID de String para um Inteiro que é o formato o qual provavelmente se encontra no seu Banco de Dados.

[]'s

P

obrigada pmlm!!!
era so tirar os print’s mesmo!!
muito obrigada!!!
:smiley: :smiley: :smiley:

P

obrigada ganondorfan!
vou usar suas dicas
:smiley:

Criado 11 de janeiro de 2011
Ultima resposta 11 de jan. de 2011
Respostas 5
Participantes 3