SID_SILVA 0 Denunciar post Postado Maio 6, 2009 Ola Amigos Estive procurando aqui no forum como gravar e ler campos data nulos mas ainda nao cheguei a nenhuma conclusao. Tenho alguns campos data que nao sao de preenchimento obrigatorio, logo preciso salva-los em branco. Na hora da leitura, preciso trazer esses campos de volta, tambem em branco. Para le-los eu estava fazendo uma condicao, para verificar se realmente estao em branco, assim posso determinar se devo exibir a data ou o campo em branco. If dr("REL_DATAVISITACLI") IsNot DBNull.Value Then TxtData.Text = String.Format("{0:dd/MM/yyyy}", dr("REL_DATAVISITACLI")).ToString Else TxtData.Text = "" End If ou If dr("REL_DATAVISITACLI") Is System.DBNull.Value Then TxtData.Text = String.Format("{0:dd/MM/yyyy}", dr("REL_DATAVISITACLI")).ToString Else TxtData.Text = "" End If Mas nenhum dos dois funcionou. E para gravar a data em branco, como devo proceder? Muito Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Ted k' 126 Denunciar post Postado Maio 6, 2009 converta o campo para data no IF! Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Maio 6, 2009 If dr("REL_DATAVISITACLI").ToString <> string.Empty Then TxtData.Text = String.Format("{0:dd/MM/yyyy}", dr("REL_DATAVISITACLI")).ToString Else TxtData.Text = "" End If Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
SID_SILVA 0 Denunciar post Postado Maio 6, 2009 Muito obrigado amigos mas os 2 exemplos nao funcionaram. Alguma outra sugestao? Muito Obrigado Continuando sobre esse assunto. Procurando na internet, encontrei um topico que dizia que um campo tipo DataTime, jamais podera conter um valor nulo, pois isso nao e possivel e para contornar esse problema e atribuido o valor Date.MinValue, por exemplo para indicar que o campo nao foi preenchido. Porem nao primeira vez em que eu efetuar a leitura na base de dados o campo DateTime, contera obrigatoriamente o valor "NULL". E isso mesmo o que acontece? Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
daniel.cafonso 0 Denunciar post Postado Maio 6, 2009 Olá SID_SILVA, td bem? O que acontece é o seguinte... DateTime é um "value-type" e não pode receber NULL.. Dê uma lida nesse ARTIGO que você entenderá melhor os tipos do .Net.. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Após ler o artigo acima, dê uma olhada nesse AQUI, que usa o NULLABLE, para poder trabalhar com Data de uma maneira bem fácil... Espero ter ajudado! []'s Daniel Afonso Compartilhar este post Link para o post Compartilhar em outros sites
SID_SILVA 0 Denunciar post Postado Maio 7, 2009 Bem, gostaria de agradecer mais uma vez a ajuda de todos, sem as quais eu nao teria conseguido resolver mais esse probleminha. Agora que essa questao esta resolvida, os exemplos abaixo foram todos aprovados. If dr("REL_DATAVISITACLI") IsNot DBNull.Value Then TxtData.Text = String.Format("{0:dd/MM/yyyy}", dr("REL_DATAVISITACLI")).ToString Else TxtData.Text = "" End If ou If IsDBNull(dr("REL_DATAVISITACLI")) Then TxtData.Text = String.Empty Else TxtData.Text = String.Format("{0:dd/MM/yyyy}", dr("REL_DATAVISITACLI")).ToString End If ou If IsDate(dr("REL_DATAVISITACLI")) = True Then TxtData.Text = String.Format("{0:dd/MM/yyyy}", dr("REL_DATAVISITACLI")).ToString Else TxtData.Text = "" End If ou If dr("REL_DATAVISITACLI").ToString = "" Then TxtData.Text = "" Else TxtData.Text = String.Format("{0:dd/MM/yyyy}", dr("REL_DATAVISITACLI")).ToString End If Enfim mais um problema resolvido.Vivendo e aprendendo. Obrigado e um Abraco Compartilhar este post Link para o post Compartilhar em outros sites