Problemas com resultado do banco,pesquisa com valor diferente mas resultado é igual

11 respostas
P
ola, tenho uma tela que pesquisa alunos em um banco de dados,esta pesquisa pode ser feita atraves do nome ,cpf,numero do carne e registro academico(ra),até ai tudo bem o problema é que se eu pesquiso por nome,ra,cpf ou carne vem sempre o mesmo resultado que é o aluno com id 15 =( meu cod
b1.addActionListener (new ActionListener (){  
			public void actionPerformed(ActionEvent e)
			{
				try{
					String h = null,h1=null,h2=null;
					if(t2.getText()!=null )
					{
						resultado=comando.executeQuery("select nome,cpf,matricula from aluno where Id='"+t2.getText()+"'");

						if(resultado.next())
						{
							h=resultado.getObject(1).toString();
							h1=resultado.getObject(2).toString();
							h2=resultado.getObject(3).toString();
							System.out.println(h+" "+h1+" "+h2);
							t1.setText(h);t4.setText(h1);t3.setText(h2);
						}

					}
					if(t1.getText()!=null )
					{
						resultado=comando.executeQuery("select Id,cpf,matricula from aluno where nome='"+t1.getText()+"'");

						if(resultado.next())
						{
							h=resultado.getObject(1).toString();
							h1=resultado.getObject(2).toString();
							h2=resultado.getObject(3).toString();
							System.out.println(h+" "+h1+" "+h2);
							t2.setText(h);t4.setText(h1);t3.setText(h2);
						}
					}
					if(t4.getText()!=null )
					{
						resultado=comando.executeQuery("select nome,Id,matricula from aluno where cpf='"+t4.getText()+"'");

						if(resultado.next())
						{
							h=resultado.getObject(1).toString();
							h1=resultado.getObject(2).toString();
							h2=resultado.getObject(3).toString();
							t1.setText(h);t2.setText(h1);t3.setText(h2);
						}
					}
					if(t3.getText()!=null )
					{
						resultado=comando.executeQuery("select nome,Id,cpf from aluno where matricula='"+t3.getText()+"'");

						if(resultado.next())
						{ 
							h=resultado.getObject(1).toString();
							h1=resultado.getObject(2).toString();
							h2=resultado.getObject(3).toString();
							t1.setText(h);t2.setText(h1);t4.setText(h2);
						}
					}
					else
						System.out.println("bah");
				}
				catch(Exception e1)
				{
					JOptionPane.showMessageDialog(null, "O aluno nÃo esta cadastrado no banco!");
					e1.printStackTrace();
				}
				
			}});
sendo
t1.getText() //nome
t2.getText() //ra
t3.getText() //numero carne
t4.getText() //cpf
pq isto esta ocorrendo?

obg

11 Respostas

d34d_d3v1l

Nossa complicadíssimo...

t1, t2 ? por que não colocou o nome mais sugestivo ?

se:

# t2.getTex() //ra 

então

ra.getText()
drsmachado

Todas estas consultas retornam valores iguais, mesmo passando parâmetros diferentes?

drigo.angelo

não entendi bem seu problema… por que os resultados devem ser diferentes?

Anime

Oi,

Use nomes intuítivos para identificar sua variéveis,assim quando pegar o código depois de um tempo,será mais facil,ou mesmo se outra pessoa for fazer alguma alteração… :wink:

O problema é que sempre retorna o mesmo aluno(aluno com id 15)… :roll: Foi isso que entendi.

drigo.angelo

coloca alguns valores hard-coded aí só pra testar,… (ou posta seu teste unitário)

Não entendi qual o problema de ele trazer o aluno de código 15, tipo assim, você entrou na pesquisa como Pedro e o resultado foi Joao (aluno d codigo 15) :?:

P

drigo.angelo

é este meu problema mas so ocorre se eu pesquiso por cpf agora,
é este meu problema!

P

gente a unica coisa q ta ocorrendo agora é q se eu pesquiso pelo numero do carne 123 vem o aluno do carne 12345,sendo q ha um aluno com o numero de carne 1234 tmbm
alguem sabe pq ta acontecendo isto?
obg

P

alguem pode me ajudar?
obg

drsmachado

A consulta que você está tendo problema é esta?

if(t3.getText()!=null )  
                     {  
                         resultado=comando.executeQuery("select nome,Id,cpf from aluno where matricula='"+t3.getText()+"'");  
   
                         if(resultado.next())  
                         {   
                             h=resultado.getObject(1).toString();  
                             h1=resultado.getObject(2).toString();  
                             h2=resultado.getObject(3).toString();  
                             t1.setText(h);t2.setText(h1);t4.setText(h2);  
                         }  
                     }

A princípio, ela está correta…

P

pois é eu nao sei pq trava nos valores 123 e tipo eu tenho 2 alunos cm numero d carne 12345 e so vem o cm ra num.15
tah mto estranho

E

Olha, se é mysql e todos esses campos são do tipo text, varchar, etc, use a palavra “LIKE” no lugar de “=”. Acho que é mais certo.

Criado 8 de fevereiro de 2011
Ultima resposta 12 de fev. de 2011
Respostas 11
Participantes 6