Consulta SUM com banco Access

3 respostas
PauloVitorB

Olá Pessoal!

Eu preciso fazer uma consulta SUM, que me retorne todas as vendas do dia selecionado!
Mas eu to com problema em converter o ResultSet em Double! Se é que dessa forma é possivel!
me deem uma ajuda awe!
Por favor

boolean consulta=true;
        double Valor;
        try{ //tratamento de erros
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//busca Driver
            //conecta no BD
            Connection con=DriverManager.getConnection("jdbc:odbc:Banco1","","");
            Statement stmt= con.createStatement();//objeto comdo sql
            String ConsData = jFormattedTextFieldMensal.getText();  //ch .getDate().toString();
            // JOptionPane.showMessageDialog(this,"Valor R$" + ConsData);
           
           ResultSet RS= stmt.executeQuery("Select SUM(ValorTotal) from Caixa where Data='" + ConsData + "' and Entrada=1" );
            //ResultSet RS= stmt.executeQuery("Select SUM(ValorTotal) from Caixa where Data='" + ConsData + "' and Entrada=1" )
            Valor = 0 ;     
            while (RS.next()){
              Valor = RS.getDouble("Total"); 
                JOptionPane.showMessageDialog(this,"Valor R$" + Valor);
                consulta=false;
                setVisible(false);
            }
            if (consulta) JOptionPane.showMessageDialog(this,"Dados Não Encontrados!");
            RS.close();
            stmt.close();
            con.close(); //fecha conexão com BD
        } catch(SQLException e){ //trata os erros
            JOptionPane.showMessageDialog(this,"Erro Comando SQL "+e.getMessage());
        } catch(ClassNotFoundException e){
            JOptionPane.showMessageDialog(this,"Driver não encontrado");
        }

3 Respostas

castiel

Creio que o problema está na sua linha 15:

Valor = RS.getDouble("Total");

tente colocar

Valor = RS.getDouble(1);

ou

Valor = RS.getDouble("ValorTotal");
PauloVitorB

[quote=castiel]Creio que o problema está na sua linha 15:

Valor = RS.getDouble("Total");

tente colocar

Valor = RS.getDouble(1);

ou

Valor = RS.getDouble("ValorTotal");

Brigadao awe!

tah funcionando!
agora!

usei o exemplo

Valor = RS.getDouble(1);

brigadao msm!

PauloVitorB

[b]Ok!

O problema ali tah resolvido!

Mas surgiu outro!
por exemplo, eu salvo o valor da minha venda!
que eu declarei como double
ai eu vejo no banco(access) tudo o que eu salvo, ele bota um zero a mais!
EX: 52 ->520

[/b]

try{ //tratamento de erros Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//Driver JDBC ? Fonte de Dados ODBC //conecta no BD, as aspas vazias representam o Login: usuário e senha. Connection con = DriverManager.getConnection("jdbc:odbc:Banco1","",""); Statement stmt = con.createStatement(); //objeto comdo sql Double cadMat=Double.parseDouble( jTextFieldValorSaida.getText() ); //obtém nome digitado int cadSaida=2; Date cadData = new Date(System.currentTimeMillis()); Time cadHora = new Time(System.currentTimeMillis()); stmt.executeUpdate("insert into Caixa (Entrada,Data,Hora,ValorTotal) values ('" + cadSaida + "','" + cadData + "','" + cadHora + "','" + cadMat + "')" ); JOptionPane.showMessageDialog( this, " Dados Salvos! "); con.close(); setVisible(false); } catch( SQLException e){ //trata os erros SQL JOptionPane.showMessageDialog(this, "Erro Comando SQL " + e.getMessage() ); } catch( ClassNotFoundException e){ //trata erros de conexão JOptionPane.showMessageDialog( this, " Driver não encontrado " ); }

Criado 5 de julho de 2009
Ultima resposta 5 de jul. de 2009
Respostas 3
Participantes 2