Ta salvando como null no BD

7 respostas
U

Uso Postgresql e ao salvar no banco em uma coluna ta salvando como “null”.
To inserindo os dados em uma jTable
Alguém pode me ajudar?
Segue o código.

private void salvarEntrada() {
    if ((fieldEntrada.getText().trim().equals(""))||(formattedData.getText()
            .trim().equals("")))
    {
        statusEntrada.setText("Status: Registro possui campo(s) vazio(s).");
        fieldEntrada.grabFocus();
    }
    else
    {
    if (operacao.trim().equals("I"))
    {
    int ent_movi, pro_codi;    
    String ent_data, usu_codi, ent_pro_qtde;
    String comando = "insert into entrada (ent_movi, ent_data, usu_codi) "
            + "values (?,?,?)";
    Connection con = Conector.getTestConnection();
    statement = null;

            try
             {
                 ent_movi = Integer.parseInt(fieldEntrada.getText());
                 ent_data = formattedData.getText();
                 usu_codi = String.valueOf(login);

            statement = con.prepareStatement(comando);
            statement.setInt(1, ent_movi);
            statement.setDate(2, utilitario.formatDataBd(ent_data));
            statement.setInt(3, Integer.parseInt(usu_codi));
            statement.executeUpdate();
            con.close();           
                }
            catch (Exception ex)
            {ex.printStackTrace();
            }
    comando = "insert into entrada_produto (ent_pro_qtde, pro_codi, "
            + "ent_movi) values (?,?,?)";
    con = Conector.getTestConnection();
    statement = null;

            try
             {
    int vLinha = tabelaEntrada.getSelectedRow();
    ent_pro_qtde = String.valueOf(tabelaEntrada.getValueAt(vLinha, 2)); //esse campo salva como null, todos os outros salvam corretamente
    pro_codi = Integer.parseInt(String.valueOf(tabelaEntrada.getValueAt
            (vLinha, 0)));
    ent_movi = Integer.parseInt(fieldEntrada.getText());

            statement = con.prepareStatement(comando);
            statement.setString(1, (ent_pro_qtde));
            statement.setInt(2, (pro_codi));
            statement.setInt(3, (ent_movi));
            statement.executeUpdate();
            con.close();
            util.LimparCampos(painelDados);
                }
            catch (Exception ex)
            {ex.printStackTrace();
}
}
}

7 Respostas

G

Olá.

bom, Não sei que tipo de JTable você está utilizando, mas quando quero pegar um valor de um JTable, geralmente utilizo o seguinte código:

jTable1.getModel().getValueAt(linha, 0).toString());

reparei que você escreveu:

ent_pro_qtde = String.valueOf(tabelaEntrada.getValueAt(vLinha, 2));

tente tirar a conversão String.valueOf e coloque toString( ) como fiz anteriormete.

Outra coisa, coloque um

sysout ( tabelaEntrada.getValueAt(vLinha, 2) ); e veja se aparece algo

aí, conte pra gente no que deu isso!!.. :wink:

Eder_Peixoto

Olá gui-jac!

Tanto faz utilizar

jTable1.getModel().getValueAt(linha, 0).toString());

ou

ent_pro_qtde = String.valueOf(tabelaEntrada.getValueAt(vLinha, 2));

pois o método valueOf invoca toString().

G

ops… :smiley:

U

Não mudou nada.
Tem outra sugestão?

G

ume, tenta dar um sysout na variável ent_pro_qtde , e diga se foi exibido algum resultado.

U

O resultado exibido foi um null, o mesmo q ta salvando no banco.

U

Ja resolvi o problema.
Na tabela eu tinha colocado a coluna como integer.
Valeu pela ajuda.

Criado 26 de outubro de 2010
Ultima resposta 28 de out. de 2010
Respostas 7
Participantes 3