DUVIDA BASICA SOBRE DATAS

RPMARQUES 23/07/2012 16:33:46
#406467
Pessoal, estou usando o seguinte código para passar uma data no meu sisteminha...
A vaiavel wDataRec é do tipo date.
Se o meu maskedit não for preenchido, no caso ficar só com os [Ô] / /[Ô], ele vai passar pra variavel q to montando o meu sql o conteúdo [Ô][Ô], e se tiver alguma coisa vai pegar o conteúdo da variável wDataRec, mas o que ta acontecendo é quando ele vem vazio, ele ta preenchendo com a data [Ô]01/01/0001[Ô]

como posso resolver isso???
Citação:

IIf(mskDataRec.Text = [Ô] / [Ô], [Ô][Ô], FormatDateTime(wDataRec, DateFormat.ShortDate))



KERPLUNK 23/07/2012 16:50:38
#406468
Resposta escolhida
Formatos de dados compostos, como datas, arrays, collections, Lists, IP, são mais complexos de se trabalhar e é normal ter um pouco de dificuldades. Bem, o ideal, é que caso não tenha valor a ser passado para uma variável do tipo Data, que se passe Nul(Nothing no VB.NET) e não texto em branco. Então:
Dim data As System.Nullable(Of DateTime) = Nothing
If txtData.Text <> [Ô] / / [Ô] Then
data = Convert.ToDateTime(txtData.Text)
End If

Nesse caso, se o valor digitado não for uma data, a variável [Ô]data[Ô] vai conter Nothing, senão, vai conter a data digitada. E quando for gravar isso no banco, faça o teste:
If data = Nothing
cmd.Parameters.AddWithValue([Ô]@DataEntrada[Ô], DBNull.Value)
Else
cmd.Parameters.AddWithValue([Ô]@DataEntrada[Ô], data)
End If
Tópico encerrado , respostas não são mais permitidas