COMO CRIAR BOTAO PESQUISA E INSERIR DADOS TABELA EM CAMPO DE TEXTO

28/06/2017

0

Estou tentando fazer a seguinte operação:
Apartir do Campo Codigo, quero pesquisar (filtrar) toda a linha do produto no banco de dados, e inserir os dados da tabela nos campos de texto abaixo:
Link para visualizar imagens do codigo e da tela que quero inserir os dados.
Imagem Tela Programa



Codigo: (campo texto ) - Pesquisar

Nome (nomecadastrado)
Data (datacadastrada)
Valor Venda (valor cadastrado)

Nao sei certo como criar este codigo para isso tentei adaptar o codigo que criei para a funcao salvar:
public void alterarVenda() {
     
      String sql = "Select *from janeiro where codigo like `%" + txtcodigoalterar + "%" ;
             
        try {
            pst = conecta.prepareStatement(sql);
           // pst.setInt(1, Integer.parseInt(txtcodigoalterar.getText()));
            pst.setString(1, txtData.getText());
            pst.setString(2, txtCliente.getText());
            pst.setDouble(3, Double.parseDouble(txtValorVenda.getText()));
            pst.setInt(4, Integer.parseInt(txtAbacaxi.getText()));
            pst.setInt(5, Integer.parseInt(txtAbacaxiHortela.getText()));
            pst.setInt(6, Integer.parseInt(txtAcai.getText()));
            pst.setInt(7, Integer.parseInt(txtAcerola.getText()));
            pst.setInt(8, Integer.parseInt(txtAcerolaLaranja.getText()));
            pst.setInt(9, Integer.parseInt(txtAmora.getText()));
            pst.setInt(10, Integer.parseInt(txtCaja.getText()));
            pst.setInt(11, Integer.parseInt(txtCaju.getText()));
            pst.setInt(12, Integer.parseInt(txtCoco.getText()));
            pst.setInt(13, Integer.parseInt(txtCupuacu.getText()));
            pst.setInt(14, Integer.parseInt(txtGoiaba.getText()));
            pst.setInt(15, Integer.parseInt(txtGraviola.getText()));
            pst.setInt(16, Integer.parseInt(txtLaranja.getText()));
            pst.setInt(17, Integer.parseInt(txtLimao.getText()));
            pst.setInt(18, Integer.parseInt(txtMamao.getText()));
            pst.setInt(19, Integer.parseInt(txtMamaoMaracuja.getText()));
            pst.setInt(20, Integer.parseInt(txtManga.getText()));
            pst.setInt(21, Integer.parseInt(txtMaracuja.getText()));
            pst.setInt(22, Integer.parseInt(txtMelao.getText()));
            pst.setInt(23, Integer.parseInt(txtMisto.getText()));
            pst.setInt(24, Integer.parseInt(txtMorango.getText()));
            pst.setInt(25, Integer.parseInt(txtPessego.getText()));
            pst.setInt(26, Integer.parseInt(txtTangerina.getText()));
            pst.setInt(27, Integer.parseInt(txtUva.getText()));
            pst.execute();
            JOptionPane.showMessageDialog(null, "Alterado com Sucesso", "alterado com Sucesso", JOptionPane.INFORMATION_MESSAGE);
        } catch (SQLException error) {
            JOptionPane.showMessageDialog(null, error);
        }

    } 


Mas nao funciona retorna do programa com erro
Como posso realizar este codigo?

Banco de dados PostgreSQL, e Programa Netbeans Java
Caio

Caio

Responder

Posts

03/07/2017

Israel Suhanko

Olá!
Observe a alteração:
// Código original
String sql = "Select *from janeiro where codigo like `%" + txtcodigoalterar + "%" ;

// Código alterado
String sql = "Select *from janeiro where codigo like `%" + ? + "%" ;


Quando você executa o código original o banco recebe a query com o nome da variável que você inseriu na query:

select * from janeiro where codigo like '% txtcodigoalterar + %';


Com o código alterado, no momento em que ele vai efetuar a busca, o interpretador troca o caractere coringa ? por um valor que você setou no código:

pst.setString(1, txtData.getText());


Mas observe que o valor setado como parâmetro em pst deve ser do mesmo tipo que o banco e dessa linha para baixo apague todos os outros pst pois você está usando um único argumento para efetuar o select (no caso o código).
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar