2013-07-14 3 views
1

J'ai maskedtextbox qui insère la date dans SQL data type date. Dans SQL il a des valeurs NULL autorisées mais si j'essaie d'insérer cette zone de texte masquée vide. Il donne une erreur qu'il est incapable de convertir des symboles en type de données Date. Cette zone de texte masquée ressemble à .. _ _ (JJ.MM.AAAA)MaskedTextbox impossible d'insérer la date NULL dans SQL

Mon Parameter pour INSERT INTO SqlCommand est ceci:

prikaz.Parameters.AddWithValue("zodjdate", maskedTextBox2.Text); 

Comment dois-je changer pour en faire insérer NULLs?

Merci d'avance. M.S.

+0

Chaîne vide est différent de null –

Répondre

3
var value = (object) DBNull.Value; 
DateTime parsedDate; 
if (DateTime.TryParseExact(maskedTextBox2.Text, "dd.MM.yyyy", null, 
          DateTimeStyles.None, out parsedDate)) 
{ 
    value = parsedDate; 
} 
prikaz.Parameters.AddWithValue("zodjdate", value); 
+0

Cela m'a donné cette erreur: Type d'expression conditionnelle ne peut être déterminée parce qu'il n'y a pas de conversion implicite entre: System.DBNull et chaîne. Merci d'avoir aidé mais que dois-je faire avec ça? – Marek

+1

À droite, vous devriez lancer 'DBNull.Value' à' object'. Les deux côtés de ':' peuvent être convertis en 'object'. – Andomar

+0

Merci encore, j'ai essayé cela mais il me donne toujours le même message d'erreur: t il est incapable de convertir des symboles en type de données Date. Vous ne savez pas où l'erreur pourrait être? – Marek