2013-08-05 3 views
3

J'ai ce code ci-dessous qui se soucient si maskedtextbox is empty. Si elle est vide INSERT INTO Table SQL __.__.____ - seul le masque, donc je le crois INSERTS NULL Mais quelque chose s'est mal passé quand j'ai rempli le maskedtextbox. Il reste INSERT__.__.____ - NULL Je ne sais pas où je me trompe car il devrait normalement insérer le date qui se trouve dans le maskedtextbox.MaskedTextBox Si vide insérez NULL dans SQL

Le masque pour cette zone de texte est __.__.____ comme 00/00/0000

Type de données dans lequel insérer ces données est - ce jour.

Voici le code:

var value2 = (object)DBNull.Value; 
DateTime parsedDate2; 
if (DateTime.TryParseExact(maskedTextBox2.Text, "__.__.____", null, 
          DateTimeStyles.None, out parsedDate2)) 
{ 
    value2 = parsedDate2; 
} 
prikaz.Parameters.AddWithValue("@odjdate", value2); 

Edit: Ce code dit ci-dessous: le nom de 'valeur2' n'existe pas dans le contexte actuel »

var value2 = (object)DBNull.Value; 
DateTime parsedDate2; 
if (DateTime.TryParseExact(maskedTextBox2.Text, "dd.MM.yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out parsedDate2)) 
{ 
    value2 = parsedDate2; 
} 
prikaz.Parameters.AddWithValue("@odjdate", value2); 

Ce code fait en dessous de ce Ex:

Converting into data type date wasn't succesfull. 

Ce code

if (maskedTextBox2.Text == "__.__.____") 
{ 
    prikaz.Parameters.AddWithValue("@odjdate", null); 
} 
else 
{ 
    prikaz.Parameters.AddWithValue("@odjdate",maskedTextBox2.Text); 
} 
+1

Vous devez donner le format 'DateTime.TryParseExact' au lieu de' '__... quel est votre format de masque? –

+0

@SriramSakthivel Merci pour votre commentaire, mon masque est 00/00/0000 -/est remplacé par. – Marek

+1

A quoi ressemble votre valeur 'maskedTextBox2.Text'? voir l'exemple –

Répondre

1

Cela fonctionne bien pour moi:

var value2 = (Object)DBNull.Value; 
DateTime parsedDate2; 
if (DateTime.TryParse(maskedTextBox1 .Text, out parsedDate2)) 
{ 
    value2 = (Object)parsedDate2; 
} 
prikaz.Parameters.AddWithValue("@odjdate", value2);  
1

Essayez cette

var value2 = (object)DBNull.Value; 
DateTime parsedDate2; 
if (DateTime.TryParseExact(maskedTextBox2.Text, "dd.MM.yyyy", CultureInfo.InvariantCulture,DateTimeStyles.None, out parsedDate2)) 
{ 
    value2 = parsedDate2; 
} 

Note: si votre format est "jj.mm.aaaa", puis remplacer le format pour rendre l'analyse syntaxique au travail!

Cela devrait fonctionner

+0

J'ai édité ma réponse ça donne sme cette erreur - Le nom 'valeur2' n'existe pas dans le contexte actuel, j'ai édité la réponse pour que vous puissiez voir ce que j'ai entré – Marek

+1

@Marek Vous n'avez pas supprimé la ligne qui dit 'var value2 = ...', l'avez-vous fait? – jszigeti

+1

N o Je viens de donner à OP la partie à remplacer. Je n'ai pas suggéré de supprimer d'autres lignes. Est-il clair maintenant @Marek –

Questions connexes