Selecionando apenas 1 campo do banco de dados!

3 respostas
acbucard
Tenho um rpograma que cadastra a venda de persianas. Numa tela a parte faço o cadastro de persianas com marca, modelo e preço, Nessa tela, após selecionar a marca em um comboBox e digitar o modelo, a altura e largura, gostaria que o prgrama fosse no BD e pegasse apenas o preço, mas está dando erro. Alguem poderia me ajudar?
private void btnCalculeActionPerformed(java.awt.event.ActionEvent evt) {
        double largura, altura, mtotal, preco, ptotal;



            try {
                String sql = "select * from pedpersi Where codPed = "+txtCodPedido.getText();
            pedpersi.executarSQL(sql);

            txtPrecoMetro.setText(pedpersi.resultset.getString("preco"));

            largura = Double.parseDouble(txtLargura.getText());
            altura = Double.parseDouble(txtAltura.getText());
            mtotal = largura*altura;
            preco=Double.parseDouble(txtPrecoMetro.getText());
            ptotal=preco*mtotal;


            txtMetTot.setText(""+mtotal);
            txtPrecoTot.setText(""+ptotal);


            JOptionPane.showMessageDialog(null,"Dados completados com sucesso!");

        

        } catch (SQLException erro) {
            JOptionPane.showMessageDialog(null,"Erro a tentar completar o registro..."+erro);
        }


    }

Ele dá erro no comando sql também.

Grata desde já!

3 Respostas

mitgan

1 - Somente um campo na pesquisa
String sql = "Select preco from pedpersi Where codPed = "+txtCodPedido.getText();
2 - Porque o preço é uma String?
txtPrecoMetro.setText(pedpersi.resultset.getString("preco"));

luciano2

tenta postar o stacktrace com o erro.

E também se possível não concatene o parâmetro com o sql, isto vai te deixar exposta a sql injection.

Use a classe PreparedStatement

mitgan

Um exemplo (Não sei se esta implementado da melhor forma, mais ele funciona)

public void buscaDadosBD(int codigo) {
        try {
            preparedStatement = conect.prepareStatement("Select * from CIDADE where COD_CID=?");
            preparedStatement.setObject(1, codigo);
            result = preparedStatement.executeQuery();
            while (result.next()) {
                setCodigo(result.getInt("COD_CID"));
                setDescricao(result.getString("DES_CID"));
                setUF(result.getString("UF_CID"));
                setStatus(result.getString("STATUS_CID"));
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
Criado 18 de novembro de 2010
Ultima resposta 18 de nov. de 2010
Respostas 3
Participantes 3