[RESOLVIDO]Problema com jTextfield, retorna valor 0.0

12 respostas
D

programa sem erros, mas retorna o valor errado, sempre retorna 0.0

oque eu faço pra na textfield aparecer o valor correto, que é o resultado do banco.

valeu.

public double calcula(Cheque x1) throws SQLException {



        String sql = "select sum(valor) as Total from cheque where datapag between ? and ?";
        PreparedStatement stmt = this.conexao.prepareStatement(sql);
        stmt.setString(1, x1.getData1());
        stmt.setString(2, x1.getData2());
        ResultSet rs = stmt.executeQuery();


        double valor1=0;
        while (rs.next()) {

           
            valor1 = rs.getDouble("Total");

        }

        rs.close();
        stmt.close();
        return valor1;

    }
public class jTSoma extends javax.swing.JFrame {

    private double valor1;

public void calcular() {



        try {
            
            Cheque x1 = new Cheque();
            x1.setDatapag(jTData1.getText());
            x1.setDatapag2(jTData2.getText());
            ChequeDao dao = new ChequeDao();
            valor1 = dao.calcula(x1);



        } catch (SQLException ex) {
            Logger.getLogger(jTCheque.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
private void jBSomaeListaActionPerformed(java.awt.event.ActionEvent evt) {                                             
        // TODO add your handling code here:
        
        calcular();
        jTTotal.setText(""+valor1);

    }

12 Respostas

D

coloquei um System out println pra imprimir o valor1 e imprimiu 0.0

então o resultset do banco não ta funfando…

e agora?

ViniGodoy

Que tipo de dado é o campo dataPag? Se for date, pq vc está usando setString no lugar de trabalhar com datas?

D

sim, mas eu estou colocando os dados no formato date…

no mysql funciona normalmente…

ViniGodoy

Use então setDate no lugar de setString. O formato de string para data muda de banco para banco.

M

E provavelmente é esse o problema: se a data tem outro formato, o select não vai ter resultados (e por isso Total será zero mesmo).

D

COloco o setDate mas da erro…

não sei qual é o problema,

stmt.setDate(1, x1.getData1());
stmt.setDate(2, x1.getData2());
o erro fica na linha

(1, [u]x1.getData1<a>/u</a>);

(2, [u]x1.getData2<a>/u</a>);
M

O problema está descrito no erro. O tipo de argumento é incompatível.

O método getData1() e getData2() deve retornar um objeto do tipo java.sql.Date para que isso funcione, e não uma String.

D

marcos, ajeitei o erro mas o programa continua retornando o 0.0

M

Como estão seus métodos getData1 e getData2?

D

da mesma forma só mudou o erro pq eu dei set e get noo data1 e data2 como “date”.

ViniGodoy

DanOliveira:
da mesma forma só mudou o erro pq eu dei set e get noo data1 e data2 como “date”.

E qual é a “mesma forma”? Pode postar eles aqui?

D
public double calcula(String data1, String data2) throws SQLException {



        String sql = "select sum(valor) as Total from cheque where datapag between ? and ?";
        PreparedStatement stmt = this.conexao.prepareStatement(sql);
        stmt.setString(1, data1);
        stmt.setString(2, data2);

        ResultSet rs = stmt.executeQuery();

        double valor1=0;
        if (rs.next()) {



            valor1 = rs.getDouble("Total");
            System.out.println(valor1);

           
        }

        rs.close();
        stmt.close();
        return valor1;

    }
public double calcular() {


       try {

            ChequeDao dao = new ChequeDao();

            String data1 = jTdatacalculo1.getText();
            String data2 = jTdatacalculo2.getText();

            valor1 = dao.calcula(data1, data2);



        } catch (SQLException ex) {
            Logger.getLogger(jTCheque.class.getName()).log(Level.SEVERE, null, ex);
        }
        return valor1;
    }
private void jBCalcularActionPerformed(java.awt.event.ActionEvent evt) {                                           
        try {
            // TODO add your handling code here:
            listarSoma();
        } catch (SQLException ex) {
            Logger.getLogger(jTCheque.class.getName()).log(Level.SEVERE, null, ex);
        }
            calcular();
            jTTotalsoma.setText(""+valor1);
        
    }

problema resolvido, aí está a solução pra os que tiverem a mesma duvida…

Criado 5 de fevereiro de 2010
Ultima resposta 5 de fev. de 2010
Respostas 12
Participantes 3