Como salvar um JDateChooser no banco SqlServer?

11 respostas Resolvido
datetimejavasqlserver
E

Como posso manipular um JDateChooser e salvar o mesmo em um banco sqlserver?

Meu botão salvar esta assim:

String DTVENDA = (String) txtDataVenda.getDateFormatString();

Cliente C = new Cliente(id, DTVENDA, CPF, CLIENTE,);
Conecta CN = new Conecta();
CN.Inserir(C);


e o buscar está dessa forma:

Cliente Cl = new Cliente();
            Cl.setCPF(txtCpf.getText());
            Conecta CX = new Conecta();
            Cl = CX.Buscar(Cl.getCPF());

txtDataVenda.setDateFormatString(Cl.getDTVENDA());

Meu campo DTVENDA no banco esta como varchar(10).
Ele não salva no banco,

11 Respostas

E

Na minha classe Conecta a sintaxe sql é

public void Inserir(Cliente cl) throws SQLException {
        this.con = DriverManager.getConnection(fonte, this.usuario, this.senha);
        this.stm = this.con.prepareStatement(" INSERT INTO " + " PVENDAS (DT_VENDA, CPF, NOME_DO_CLIENTE") + values (?, ?, ?);

this.stm.setString(1, cl.getDTVENDA());

Os demais campos salvam e exibem o resultado, apenas a manipulação que estou fazendo no JDateChooser esta errada.

S

Você não esqueceu de chamar o método executeUpdate() da classe Connection?

J

Faça a conversão conforme abaixo, depois é só inserir no seu BD!

Date data = jDateChooser().getDate();
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
String dataFormatada = formatter.format(data);
E

Eu chamo eles na classe Conecta sim, apenas não coloquei ai no codigo que citei.

E

Nao entendi: Esse JDateChooser() seria meu txtDataVenda ?
Como utilizar a String dataFormatada que vc citou?

J

Você usa um campo de texto ou um jDateChooser ?

E

JDateChooser, com variavel de nome txtDataVenda

J
Date data = txtDataVenda().getDate();
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
String dataFormatada = formatter.format(data);

Insere no banco esse carinha aqui -> dataFormatada

E

Vlw, consigo inserir no banco tranquilo agora, mas para buscar?
Atualmente uso isso,
txtDataVenda.setDateFormatString(Cl.getDTVENDA());

mas como ficaria com as modificações que vc disse?

J
Solucao aceita

Faz o processo inverso, transformando a String de volta em Date.

String dataEmString = //aqui você atribui sua data salva no banco de dados;
Date data;
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
data = (Date) formatter.parse(dataEmString);
txtDataVenda.setDate(data);
E

Fiz assim e deu certo:

String dataEmString = (con.resultset.getString(DT_VENDA));

Date data;

DateFormat formatter = new SimpleDateFormat(dd/MM/yyyy);

data = (Date) formatter.parse(dataEmString);

txtDataVenda.setDate(data);

grato a todos pela ajuda!

Criado 3 de fevereiro de 2017
Ultima resposta 3 de fev. de 2017
Respostas 11
Participantes 3