Tenho um botão que tem a função de mostrar quantos registros tenho no banco a partir do SQL
"Count", quero que ao clicar no botão uma mensagem em joptionPane seja mostrada com o numero de registros que tenho no banco.
fiz dessa forma porem não esta dando certo,
private void btnContadorMouseClicked(java.awt.event.MouseEvent evt) {
Stringsql="SELECT COUNT (*) FROM cadastro_clientes";try{rs=pst.executeQuery(sql);JOptionPane.showMessageDialog(null,"Numero de Registros"+sql);}catch(SQLExceptionex){JOptionPane.showMessageDialog(null,ex);}}
não deu certo porque?? retorna algum erro? poste a stacktrace
R
rodrigosnantes
Me retorna a seguinte mensagem de erro;
org.postgressql.util.psqlException: Não pode utilizar métodos de consulta que pegam uma consulta de comando preparado.
H
Hygor_H
Jovem, você não vai conseguir receber a quantidade de registro em seu banco de dados printando a variável SQL não…
O seu problema é igual o meu, também procuro apresentar a quantidade de registro que contém no meu banco mas em Java tá sendo um mistério, até agora ninguem se pronunciou.
Em C# foi fácil agora em Java…
S
Sandro_Machado
velho voce não pode colocar a query dentro do executeQuery, primeiro tem que carregar no PreparedStatement depois chamar o executeQuery
abaixo um exemplo mais ou menos como deve funcionar
Stringsql="SELECT COUNT (*) FROM cadastro_clientes";PreparedStatementpst=conection.getConection().prepareStatement(sql);ResultSetrs=pst.executeQuery();
H
Hygor_H
Mesmo assim, não vai retornar o número de registros que ele contém no banco de dados.
H
Hygor_H
Tem mais coisas após seu código @Sandro_Machado que também quero descobrir e preciso de ajuda de vocês pra apresentar quantos registros tem no banco.
R
rodrigosnantes
ainda nao consegui, mesmo após a ajuda dos caros, tentei remodelando dessa forma.
privatevoidbtnContadorMouseClicked(java.awt.event.MouseEventevt){Stringsql="SELECT COUNT (*) FROM cadastro_clientes";try{//rs = pst.executeQuery(sql);rs=pst.executeQuery(sql);rs.next();rs.getInt(1);JOptionPane.showMessageDialog(null,"Numero de Registros"+rs);}catch(SQLExceptionex){JOptionPane.showMessageDialog(null,ex);}}
Porem nad adiantou.
att.
H
Hygor_H
Minha lógica tá igual a sua e também não puxa nada hahahaha.
Se você souber de algo me manda msg no pvt. Tô pesquisando aqui, qualquer coisa te aviso também.
R
rodrigosnantes
blz fi, aviso sim.
achando uma solução ja lhe passo tbm.
caso consiga alguma coisa por favor me informe tbm
R
rodrigosnantes
Cara Consegui aqui!
eu estava passando um sql dentro do preparedStatement como parâmetro nesta consulta.
Porem essa variável já estava sendo utilizada no corpo do programa.
Então eu declarei uma nova variável (resultado) pra pegar o valor do resultSet.
privatevoidbtnContadorMouseClicked(java.awt.event.MouseEventevt){Stringcontador="SELECT COUNT (*) FROM cadastro_clientes";try{rs=pst.executeQuery();rs.next();intresultado=rs.getInt(1);JOptionPane.showMessageDialog(null,"Numero de Registros encontrados no banco : "+resultado);}catch(SQLExceptionex){JOptionPane.showMessageDialog(null,ex);}}