Problema com consulta

4 respostas
M

Na consulta abaixo quero somar o campo valor_final e apresentar na tela num campo jTextField. Então fiz da seguinte forma:

public static float somaCaixa(Caixa caixa){
		
		Statement stmt;
		
		try {
			stmt = GerenciadorBD.getConexao().createStatement();
			
			ResultSet rs;
			
			String sql = "Select sum(valor_final) as soma from caixa where data_caixa like " +caixa.getDataCaixa();
			
				rs = stmt.executeQuery(sql);
						
			while (rs.next()){
				soma = rs.getFloat("soma");
				
				
			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		System.out.println(soma);
		return soma;
	}

Porém, quando mando escrever o valor da soma é sempre zero. Gostaria que me indicassem o que estou fazendo de errado.

Para chamar no jTextField faço da seguinte forma:

Caixa c = new Caixa();
					c.setDataCaixa(converteData(tfData.getText()));
					GerenciadorBDCaixa.somaCaixa(c);
	tfValorCaixa.setText(String.valueOf(GerenciadorBDCaixa.soma));

Obrigada!

4 Respostas

D

boa tarde…

vamos lá…
dá uma olhadinha…

aixa c = new Caixa();
               c.setDataCaixa(converteData(tfData.getText()));
               GerenciadorBDCaixa.somaCaixa(c);
   tfValorCaixa.setText(String.valueOf(GerenciadorBDCaixa.soma));

na 3a. linha…vc chama a funcao somaCaixa…e seta uma variável soma dentro do método…
perguntas:
1 - essa variável soma é estatíca
2 - se ela não for estatíca…o correto seria encapsular e acessar por getters e setters

vc poderia tb fazer assim:

Caixa c = new Caixa();
c.setDataCaixa(converteData(tfData.getText()));
tfValorCaixa.setText(String.valueOf(GerenciadorBDCaixa.somaCaixa(c)));

visto que o método retorna um valor…

qualquer dúvida…
posta aí…

t+

M

Obrigada pela atenção

D

hummmmm…
acabei de ver…
aquela comparação de data com like…

String sql = "Select sum(valor_final) as soma from caixa where data_caixa = '" +caixa.getDataCaixa()+ "'";

testa aí!

t+

M

Olá Diana!

Valeu pela ajuda. Na verdade o erro não estava no like e sim nas aspas, qdo coloquei da seguinte forma

data_caixa = '" +caixa.getDataCaixa()+ "'";

Independente se uso like ou = a consulta funciona.

Obrigada!!

Criado 21 de fevereiro de 2007
Ultima resposta 22 de fev. de 2007
Respostas 4
Participantes 2