none
Minha data esta sendo salva 0000-00-00 no banco de dados como corrigir para o valor passado 1995/04/05 RRS feed

  • Pergunta

  • objCliente.Data_De_Nascimento = DateTime.Parse(txtData.Text);

    public DateTime Data_De_Nascimento { get; set; }

            string sql = "insert into pessoa (nome,cpf,data_de_nascimento,rg)" +
                         "values ('{0}','{1}','{2}','{3}')";
            sql = String.Format(sql, Nome, Cpf, Data_De_Nascimento, Rg);

            objDAL.ExecutarComandoSQl(sql);

    segunda-feira, 31 de dezembro de 2018 19:37

Respostas

  •  ConectarBanco.Open();
     MySqlCommand cmd = new MySqlCommand
    ("insert into contrato(dtaadesao, dtavencimento"+
    "values"( @dtaadesao, @dtavencimento)", ConectarBanco);
    
    cmd.Parameters.AddWithValue("@dtaadesao", DateTime.Parse(txtdataadesao.Text).ToString("yyyy-MM-dd"));
    cmd.Parameters.AddWithValue("@dtavencimento", DateTime.Parse(txtdtavencimento.Text).ToString("yyyy-MM-dd"));
    Assim que eu faço, ele pega o valor DIA/MES/ANO do trextbox e salva no Banco ANO-MES-DIA
    terça-feira, 1 de janeiro de 2019 18:12
  • O colega A.Junior esta correto, mas caso você passe uma data não valida o sistema vai apresentar um erro de execução, causando falha em seu sistema, é muito importante quando estamos programando tentar prever a todos os passo e possíveis dados que nossa aplicação vai receber, vou deixar aqui uma função onde você pode passar como parâmetro uma data como string, o formato de retorno e se deseja um retorno como nulo caso a data não possa ser convertida.

            ///
            /// www.codigoexpresso.com.br
            /// by Antonio Azevedo
            /// 
            /// <summary>
            /// Conterte uma data string para outra também em formato string, 
            /// viabilizando a conversão e retornano uma string vazia ou nullo caso não consiga converter a data.
            /// </summary>
            /// <param name="data">data como string</param>
            /// <param name="formato">formato de retorno 'yyyy-MM-dd'</param>
            /// <param name="retornaNulo">true/false se false e a data não pode ser convertida retorna string vazia</param>
            /// <returns>string com data no formato informado</returns>
            public string DateToSql(string data, string formato, Boolean retornaNulo = false)
            {
                DateTime retorno;
    
                return (!DateTime.TryParse(data, out retorno)) ? (retornaNulo) ? null : "" : retorno.ToString(formato);            
            }
    Exemplo
     
    cmd.Parameters.AddWithValue("@dtaadesao", DateToSql(txtdataadesao.Text,"yyyy-MM-dd",false));

    Se a resposta contribuiu com seu aprendizado por favor marque como Útil
    Se solucionou seu problema por favor marque como Resposta
    Atenção, se seu problema foi resolvido não deixe o post aberto  

    Visite :  www.codigoexpresso.com.br



    quarta-feira, 2 de janeiro de 2019 21:01
  • Boa tarde,

    Por falta de retorno essa thread está encerrada.

    Se necessário favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 18 de janeiro de 2019 18:50
    Moderador

Todas as Respostas

  • Olá!

    Tente isto:

    sql = String.Format(sql, Nome, Cpf, Data_De_Nascimento.ToString("yyyyMMdd"), Rg);
    
    //ou
    
    sql = String.Format(sql, Nome, Cpf, Data_De_Nascimento.ToString("yyyy-MM-dd"), Rg);
    Espero que ajude. Bom trabalho!

    terça-feira, 1 de janeiro de 2019 06:13
  •  ConectarBanco.Open();
     MySqlCommand cmd = new MySqlCommand
    ("insert into contrato(dtaadesao, dtavencimento"+
    "values"( @dtaadesao, @dtavencimento)", ConectarBanco);
    
    cmd.Parameters.AddWithValue("@dtaadesao", DateTime.Parse(txtdataadesao.Text).ToString("yyyy-MM-dd"));
    cmd.Parameters.AddWithValue("@dtavencimento", DateTime.Parse(txtdtavencimento.Text).ToString("yyyy-MM-dd"));
    Assim que eu faço, ele pega o valor DIA/MES/ANO do trextbox e salva no Banco ANO-MES-DIA
    terça-feira, 1 de janeiro de 2019 18:12
  • O colega A.Junior esta correto, mas caso você passe uma data não valida o sistema vai apresentar um erro de execução, causando falha em seu sistema, é muito importante quando estamos programando tentar prever a todos os passo e possíveis dados que nossa aplicação vai receber, vou deixar aqui uma função onde você pode passar como parâmetro uma data como string, o formato de retorno e se deseja um retorno como nulo caso a data não possa ser convertida.

            ///
            /// www.codigoexpresso.com.br
            /// by Antonio Azevedo
            /// 
            /// <summary>
            /// Conterte uma data string para outra também em formato string, 
            /// viabilizando a conversão e retornano uma string vazia ou nullo caso não consiga converter a data.
            /// </summary>
            /// <param name="data">data como string</param>
            /// <param name="formato">formato de retorno 'yyyy-MM-dd'</param>
            /// <param name="retornaNulo">true/false se false e a data não pode ser convertida retorna string vazia</param>
            /// <returns>string com data no formato informado</returns>
            public string DateToSql(string data, string formato, Boolean retornaNulo = false)
            {
                DateTime retorno;
    
                return (!DateTime.TryParse(data, out retorno)) ? (retornaNulo) ? null : "" : retorno.ToString(formato);            
            }
    Exemplo
     
    cmd.Parameters.AddWithValue("@dtaadesao", DateToSql(txtdataadesao.Text,"yyyy-MM-dd",false));

    Se a resposta contribuiu com seu aprendizado por favor marque como Útil
    Se solucionou seu problema por favor marque como Resposta
    Atenção, se seu problema foi resolvido não deixe o post aberto  

    Visite :  www.codigoexpresso.com.br



    quarta-feira, 2 de janeiro de 2019 21:01
  • Boa tarde,

    Por falta de retorno essa thread está encerrada.

    Se necessário favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 18 de janeiro de 2019 18:50
    Moderador