[RESOLVIDO]Problemas para passar valor dos text para date

5 respostas
J

Galera estou com problema para passar o valor para data.
estou usando netbens.

public janelaEditarCliente(String nome,String telefone,
            String cpf,String email,Date datanascimento,
            String observacao,String endereco,String cidade) {
        initComponents();
        
        this.jTNome.setText(nome);
        this.jFTelefone.setText(telefone);
        this.jFCPF.setText(cpf);
        this.jTEmail.setText(email);

         //nao estou conseguindo passar o valor para date.
        this.jFDatanascimento.getText(datanascimento); // ja tentei assim   Date.valueOf(this.jFDatanascimento.getText(datanascimento));  as duas formas esta dando erro
        
        this.jTObservacao.setText(observacao);
        this.jTEndereco.setText(endereco);
        this.jTCidade.setText(cidade);

e neste aqui de cadastrar mesma coisa.

ControladorCliente    controle = new ControladorCliente();

            String nome = this.jTNome.getText();
            String telefone = this.jFTelefone.getText();
            String cpf = this.jFCPF.getText();
            String email = this.jTEmail.getText();
            Date datanascimento = Date.valueOf(this.jFDatanascimento.getText());
            String observacao = this.jTObservacao.getText();
            String endereco = this.jTEndereco.getText();
            String cidade = this.jTCidade.getText();
        try {
            controle.adicionar(nome, telefone, cpf, email,datanascimento, observacao, endereco, cidade);
        } catch (SQLException ex) {
            Logger.getLogger(janelaCadastroCliente.class.getName()).log(Level.SEVERE, null, ex);
        }

Se poderem me ajudar.

5 Respostas

Vodga

Olá, estou usando a biblioteca do Jcalendar e ele gera um numero Date e nao String, ultilizo este metodo

Tela Swing:

public void cadastro() {
        try {
            Variavel c1 = new Variavel();
            c1.setNome(jTnome.getText());
            c1.setNascimento(new java.sql.Date(jTnascimento.getDate().getTime()));
            c1.setSexo(jCsexo.getSelectedItem().toString());
  ClientesDAO dao = new ClientesDAO();
            dao.adiciona(c1);
        } catch (SQLException ex) {
            Logger.getLogger(GerenciarClientes.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

Clientes DAO (banco de dados):

public void adiciona(Variavel c1) throws SQLException {

        String sql = "insert into cliente (nome,Nascimento,Sexo)"
                + " values (?,?,?);";


        PreparedStatement stmt = conexao.prepareStatement(sql);
        stmt.setString(1, c1.getNome());
        stmt.setDate(2, new java.sql.Date(c1.getNascimento().getTime()));
        stmt.setString(3, c1.getSexo());
   stmt.execute();
        stmt.close();
    }

obs: Variavel é uma classe java que fica todas as variaveis com construtores e getter e setter

OBS: Jcalendar é uma biblioteca do java que te da um calendario inteiro no formato de um textbox com um botao ao lado para escolher a data, pesquise mais no google

J

Eu postei errado.

o Meu cadastro dao esta de boa, e o Swing tmb, Esse que mostrei aqui e do botao Salvar , e editar

Botão Salvar.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
      
            ControladorCliente    controle = new ControladorCliente();

            String nome = this.jTNome.getText();
            String telefone = this.jFTelefone.getText();
            String cpf = this.jFCPF.getText();
            String email = this.jTEmail.getText();
            Date datanascimento = this.jFDatanascimento.getText();  ERRO
            String observacao = this.jTObservacao.getText();
            String endereco = this.jTEndereco.getText();
            String cidade = this.jTCidade.getText();
        try {
            controle.adicionar(nome, telefone, cpf, email,datanascimento, observacao, endereco, cidade);
        } catch (SQLException ex) {
            Logger.getLogger(janelaCadastroCliente.class.getName()).log(Level.SEVERE, null, ex);
        }

E editar.Nao estou conseguindo passar o valor de text para date .

public janelaEditarCliente(String nome,String telefone,
            String cpf,String email,Date datanascimento,
            String observacao,String endereco,String cidade) {
        initComponents();
        
        this.jTNome.setText(nome);
        this.jFTelefone.setText(telefone);
        this.jFCPF.setText(cpf);
        this.jTEmail.setText(email);
        this.jFDatanascimento.getText(datanascimento));  ERRO
        this.jTObservacao.setText(observacao);
        this.jTEndereco.setText(endereco);
        this.jTCidade.setText(cidade);
   
    }

Muito obrigado a quem esta me ajudando

Vodga

tente algo do tipo:

c1.setMensalidade(Double.parseDouble(jTmensalidade.getText()));

ou
Integer.parseInt // inteiro, numeros, int
ou outros…

a data do seu programa, ela é uma variavel Date?
dataNascimento Date;
ou String, int, double?
cara, salva como string, ela vai funcionar

J

Sim ela ela e date na classe (Date Datanascimento) e no banco de dados tmb esta como date.

tentei também esses parse.

Se eu modificar tudo para string olha o que acontece.

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect date value: ' 22/32/3232 ' for column 'datanascimento' at row 1
J

Agora sei pq ele não estava aceitando.

E que banco phpmyadmin e padrão americano = 2013/06/09.

Eu estava colocando 12/08/1991.

no meu caso só uso date no banco.

no dao e na classe é String.

Criado 2 de julho de 2013
Ultima resposta 2 de jul. de 2013
Respostas 5
Participantes 2