2013-05-01 2 views
1

J'ai l'erreur:Récupère la valeur de la date et stocke-la dans la base de données MySQL?

INPUT STRING WAS NOT IN A CORRECT FORMAT

lors de l'exécution du code ci-dessous.

Alors, que pensez-vous que c'est l'erreur? Comment formater la date dans le DateTimePicker pour stocker correctement dans la base de données MySQL?

Voici mon code (je compris que le code correspondant que je pense est l'erreur):

cmd.Parameters.AddWithValue("@Rdate", _order.dateTimePicker_Requested.Value.ToString("yyyy-MM-dd")); 
cmd.Parameters.AddWithValue("@Ndate", _order.dateTimePicker_Needed.Value.ToString("yyyy-MM-dd")); 
cmd.Parameters.AddWithValue("@CodeDate", Convert.ToDateTime(DateTime.Now).ToString("yyyy-MM-dd hh:mm:ss")); 
+1

'DateTime.Now' _is_ a DateTime'. – SLaks

+0

@SLaks Oui Monsieur le type est DateTime dans le 3ème Paramètre tandis que dans le 1er et le 2ème c'est seulement une Date. – Harvey

Répondre

1

À moins que vos colonnes MySQL sont des chaînes (dont ils ne doivent pas être), vous devriez être de passage réelle dates comme paramètres. Ne pas appeler .ToString().

+0

Pour compléter cela, vous passez des dates sous forme de chaînes dans un format particulier. Imaginez ce qui se passerait si votre base de données passait à un autre serveur avec un format différent. Passez-les simplement en tant qu'objets 'DateTime' et laissez la base de données MySQL faire le reste. Cela peut vous éviter beaucoup de débogage. – Stefan

1

Vous devez définir:

string.Format("{0:yyyy-MM-dd}", your_date); 

Hope this helps!

0

Si votre variable représente la valeur date/heure, il n'est pas nécessaire de la convertir en chaîne automatiquement mappée avec le type de colonne MySQL et si elle ne fonctionne toujours pas, répondez. Je posterai avec un code qui convertira datetime en propre afin qu'il soit mappé avec la colonne.

Merci.

Questions connexes