Eu queria fazer uma contagem de todas as minhas colunas.
Minha query
select count (idcliente) from venda as total
Meu Prepared:
publicvoidtotalVendas(){try{PreparedStatementpst=conecta.conn.prepareStatement("select count (idcliente) from venda as total");pst.setString(1,campovendas.getText());pst.executeUpdate();}catch(SQLExceptionex){JOptionPane.showMessageDialog(rootPane,"Erro!/n"+ex);}}
Só que ele da erro, fala que o numero de índice é 1, e o de colunas é 0.
Opa cara, perdão, eu nem vi que tinha enviado a minha pergunta. Valeu por responder, mas o meu problema mesmo é quando jogo pra o preparedStatement
S
STNeto1 like
Você usa:
"select count (idcliente) from venda as total"
Em um preparedStatement mas não diz onde vai o parâmetro na linha seguinte, ( pst.setString(1, campovendas.getText()); ). Se eu fosse dizer algo, falta um where idCliene = ?;
rodriguesabner
Cara, ele funciona. mas não me retorna nada
publicvoidtotalVendas(){try{PreparedStatementpst=conecta.conn.prepareStatement("select count (idcliente) from venda where idcliente=?");pst.setString(1,campovendas.getText());pst.execute();}catch(SQLExceptionex){JOptionPane.showMessageDialog(rootPane,"Erro!/n"+ex);}}
Se eu coloco o valor “1” ou “2” no lugar do “?”, ele me retorna só os dados do cliente com id 1 ou 2
S
STNeto
Você está não passando um objeto para o método, mas está usando algo do mesmo objeto, e quando não se inicia nada no objeto, ele toma valor 0 caso seja relacionado a um número.
rodriguesabner
Chamei um pst.setInt(1, Integer.parseInt(campovendas.getText()));, mas sem retorno também
Solucao aceita
rodriguesabner
Netão, consegui:
publicvoidtotalVendas(){try{Stringsql=("select count (idcliente) from venda as total");// lista o codigoconecta.executaSQL(sql);//executa a funcao no BDconecta.rs.first();// pega o primeiro registrocampovendas.setText(String.valueOf(conecta.rs.getInt(1)));// converte ele no primeiro registro para o textField}catch(SQLExceptionex){Logger.getLogger(Menu.class.getName()).log(Level.SEVERE,null,ex);}}