PARAMETRO @DATE NO INSERT DO SQL SERVER
Citação::
Configure a propriedade TextMaskFormat de seu MaskedTextBox para ExcludePromptAndLiterals, isso fará que qualquer caracter da máscara seja removido da propriedade texto quando não houver dados digitados.
Depois substitua o trechoIIf(Trim(CStr(mskCheDataCadastro.Text)) = [Ô]/ /[Ô], [Ô]NULL[Ô], Format(CDate(mskCheDataCadastro.Text), [Ô]MM/dd/yyyy[Ô])))
porIIf(String.IsNullOrWhiteSpace(mskCheDataCadastro.Text), DBNull.Value, Format(CDate(mskCheDataCadastro.Text), [Ô]MM/dd/yyyy[Ô]))
Ola FFCOUTO, o erro continua só mudou a frase:
[Ô]A conversão da cadeia de carcteres [ô][ô] no tipo [ô]Date[ô] não é válida[Ô]
E se eu coloco uma data ele coloca:
[Ô]A conversão da cadeia de carcteres [ô]01012016[ô] no tipo [ô]Date[ô] não é válida[Ô]
Percifilho, a tua solução funcionou perfeitamente
Esse IsDate eu uso no LostFocus
Agora me explica
Assim funciona:
If Not IsDate(mskCheDataCadastro.Text) Then
cdCheque.Parameters.AddWithValue([Ô]@CheDataCadastro[Ô], DBNull.Value)
Else
cdCheque.Parameters.AddWithValue([Ô]@CheDataCadastro[Ô], Format(CDate(mskCheDataCadastro.Text), [Ô]MM/dd/yyyy[Ô]))
End If
E assim não funciona:
cdCheque.Parameters.AddWithValue([Ô]@CheDataCadastro[Ô], IIf(Not IsDate(mskCheDataCadastro.Text), DBNull.Value, Format(CDate(mskCheDataCadastro.Text), [Ô]MM/dd/yyyy[Ô])))
Ao meu ver não existe diferença, um usa if e outro iif
não teriam que funcionar da mesma maneira?
Esse IsDate eu uso no LostFocus
Agora me explica
Assim funciona:
If Not IsDate(mskCheDataCadastro.Text) Then
cdCheque.Parameters.AddWithValue([Ô]@CheDataCadastro[Ô], DBNull.Value)
Else
cdCheque.Parameters.AddWithValue([Ô]@CheDataCadastro[Ô], Format(CDate(mskCheDataCadastro.Text), [Ô]MM/dd/yyyy[Ô]))
End If
E assim não funciona:
cdCheque.Parameters.AddWithValue([Ô]@CheDataCadastro[Ô], IIf(Not IsDate(mskCheDataCadastro.Text), DBNull.Value, Format(CDate(mskCheDataCadastro.Text), [Ô]MM/dd/yyyy[Ô])))
Ao meu ver não existe diferença, um usa if e outro iif
não teriam que funcionar da mesma maneira?
Faz diferença.
iif faz a checagem antes de definir falso ou verdadeiro, já o if separado não faz.
O iif tenta avaliar e retorna o erro já que precisa de uma data.
iif faz a checagem antes de definir falso ou verdadeiro, já o if separado não faz.
O iif tenta avaliar e retorna o erro já que precisa de uma data.
Citação::
Faz diferença.
iif faz a checagem antes de definir falso ou verdadeiro, já o if separado não faz.
O iif tenta avaliar e retorna o erro já que precisa de uma data.
Então está aà a razão do problema, eu insistia no IIf
[txt-color=#0000f0]Precisando de um Sistema de Gestão Educacional?[/txt-color]
Desenvolvido em VB.NET + SQL Server + Crystal Reports
Conheça nossa Solução: www.cjsystem.com.br
Tópico encerrado , respostas não são mais permitidas