Verificar campo null e enviar pra banco de dados

3 respostas
J

Boa tarde galera, estou com uma dúvida aqui,
tenho um cadastro onde alguns campos não são obrigatorios, porém não estou conseguindo passar para o Firebird quando eles estão vazios.
De acordo com o código que tenho abaixo, ele dá o erro por causa que estará passando os campos vazios como 'null' e não somente null, para funcionar no banco de dados, porém não sei como fazer para passar da maneira correta, visto que as aspas são necessárias para quando o campo for preenchido.
Alguém poderia me ajudar?

Grato desde já.

if(jtfFinanciado.getText().equals(""))
                 financiado = null;
if(jtfBanco.getText().equals(""))
                 banco = null;
else
    banco = jtfBanco.getText();
if(jtfTroca.getText().equals(""))
                 troca = null;
else
    troca = jtfTroca.getText();
if(jtfPlaca.getText().equals(""))
                 placa = null;
else
    placa = jtfPlaca.getText();
if(jtfAno.getText().equals(""))
                 ano = null;
else
    ano = jtfAno.getText();
if(jtfValorTroca.getText().equals(""))
                 valortroca = null;
else
   valortroca = jtfValorTroca.getText();
if(jtaObs.getText().equals(""))
                 obs = null;
else 
    obs = jtaObs.getText();

stm.executeUpdate("INSERT INTO vendas (data, pedido, vendedor, cliente, veiculo, cor, chassi, tipo_venda, venda, financiado, banco, troca, placa, ano, valor_troca, obs) VALUES ('" + dataimp + "','" + jtfPedido.getText() + "','" + jcbVendedor.getSelectedItem().toString() + "','" +  jtfCliente.getText() + "','" + jtfVeiculo.getText() + "','" + jtfCor.getText() + "','" + jtfChassi.getText() + "','" + tipo_de_venda + "','" + jtfVenda.getText()+"','"  + financiado + "','"  + banco + "','" + troca + "','" + placa + "','" + ano + "','" + valortroca + "','" + obs + "')")

3 Respostas

jimmyhc

não seria o caso de usar umas aspas de escape “” “” ??

wolmirGarbin

Olá, cara seguinte eu modifiquei um pouco ai mas vai precisar corrigir algumas coisas porque tava meio sem tempo, mas analisa ai que coloquei alguns comentarios explicando, qualquer coisa posta ai…

if(jtfFinanciado.getText().equals(""))
    financiado = null;

if(jtfBanco.getText().equals(""))
    banco = null; //se ele for em branco passa apenas null desde que o campo não seja not null
else
    banco = "'"+ jtfBanco.getText() +"'"; //senão adiciona o valor do campo entre aspas para salvar como String no bd

if(jtfTroca.getText().equals(""))
    troca = null;
else
    troca = "'"+ jtfTroca.getText() +"'";
if(jtfPlaca.getText().equals(""))
    placa = null;
else
    placa = "'"+ jtfPlaca.getText() +"'";
if(jtfAno.getText().equals(""))
    ano = null;
else
    ano = "'"+ jtfAno.getText() +"'";
if(jtfValorTroca.getText().equals(""))
   valortroca = null;
else
   valortroca = "'"+ jtfValorTroca.getText() +"'";
if(jtaObs.getText().equals(""))
    obs = null;
else 
    obs = "'"+ jtaObs.getText() +"'";

//no sql removi as aspas simples dos campos que podem ser nulos para que possa passar soamente null ou se tiverem valor passa o valor entre aspas simples para salvar como String.
stm.executeUpdate("INSERT INTO vendas (data, pedido, vendedor, cliente, veiculo, cor, chassi, tipo_venda, venda, financiado, banco, troca, placa, ano, valor_troca, obs) VALUES (" + dataimp + "," + jtfPedido.getText() + "," + jcbVendedor.getSelectedItem().toString() + "," +  jtfCliente.getText() + "," + jtfVeiculo.getText() + "," + jtfCor.getText() + "," + jtfChassi.getText() + "," + tipo_de_venda + "," + jtfVenda.getText()+","  + financiado + ","  + banco + "," + troca + "," + placa + "," + ano + "," + valortroca + "," + obs + ")")

Valeu!
Wolmir Garbin

J

wolmirGarbin
vlws mesmo pela ajuda amigo, uma coisa relativamente simples, porém não consegui imaginar essa solução de modo algum.
única coisa que precisei ajeitar ali foi no comando sql, colocar algumas aspas na parte que ele pega os campos que sempre terão dados, de resto tava perfeito.
Obrigado novamente.

jimmyhc, obrigado também pela ajuda, porém não intendi o que quiz dizer.

Abraços

Criado 2 de setembro de 2010
Ultima resposta 3 de set. de 2010
Respostas 3
Participantes 3