Galera o seguinte código esta fazendo uma consulta ao banco:
Mas sempre apresenta o JOptionPane.showMessageDialog(null, “Erro de Consulta” );
Ele está conectando normalmente.
Qual pode ser o erro???
Galera o seguinte código esta fazendo uma consulta ao banco:
Mas sempre apresenta o JOptionPane.showMessageDialog(null, “Erro de Consulta” );
Ele está conectando normalmente.
Qual pode ser o erro???
Olá amigo,
Primeiramente, tente utilizar as tags de código. Visualmente fica bem melhor.
Qual a mensagem que aparece no console?
Tente executar algo assim:
String sql = "SELECT * FROM Pagamento";
PreparedStatement ps = c.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
Para ver se o erro não está na clausula where?
Se rodar certinho, monte o seu SQL novamente.
E recomendo que utilize curingas.
Algo como:
String sql = ("SELECT * FROM Pagamento WHERE matricula LIKE '%?%' AND mes LIKE '%?%' AND ano LIKE '%?%' ");
PreparedStatement ps = c.prepareStatement(sql);
//Aqui você seta os valores dos ?
ps.setString(1, bd_Matricula);
ps.setString(2, bd_Mes);
ps.setString(3, bd_Ano);
ResultSet rs = ps.executeQuery();
Abraço
Olá.
Desculp ter usado o cote, não observer o Code.
Então, nesse código não acha o c.
O que acontece é o seguinte. Se eu tiro a atribuição de valores nas variaveis bd_* que está antes de if ( ) o programa funciona, mas não atribui os valores.rs.next()
Se eu coloco, o erro acontece…
No console não aparece nada.
Obs: Na terceira vez que eu pesquiso, sem a atribuição de valores, o programa apresenta a mensagem.
Mas antes de abrir o rs, não tem como pegar os valores. Você precisa dar um next de qualquer maneira.
Se você executar o seu SQL diretamente no banco, ele traz algum resultado?
E tente mudar para o padrão que mostrei na mensagem anterior.
Abraço
Olá.
Meu querido amigo. Tirei a parte de cima, e fiz as modificações, agora somente apresenta a mensagem de não encontrado. Uma duvida, por que tenho q dar o next de qualquer forma??
Abç.

http://lh6.google.com/alcampagnani/R_0CHOCEQUI/AAAAAAAAAEY/x67zegMvutM/s400/acess.jpg
Da uma olhada, deveria achar, não?
Amigo, não lembro a correta explicação. Mas antes de dar o next, o rs ainda não está na primeira posição dos registros que ele trouxe do banco. É como se não tivesse nenhum dado para aquela posição de memoria. Então você precisa dar um next para ele se desolcar para o primeiro registro. Se for pensar, até é melhor assim, pois facilita a vida quando a ideia é trazer mais de um registro, utilizando o while. E até para verificar se veio algum registro do banco, pois o next() retorna um boolean.
Mas recomendo que teste o seu SQL primeiramente no banco. Rode ele com os valores que está passando nas variáveis e verifique se realmente está vindo o que você quer. Depois disso você vai saber se é problema de código da aplicação ou dados no banco.
Abraço
Cara,
o problema que o banco ta no acess… e um trabalhinho de faculdade…
não acha os valores mesmo. o rs.next() ta dando com falso…
Alguem pode ajudar??
Já Resolvi.
Obrigado.