Erreur avec DateTime

heriquet Messages postés 13 Date d'inscription dimanche 27 juillet 2003 Statut Membre Dernière intervention 20 janvier 2008 - 1 nov. 2003 à 13:04
heriquet Messages postés 13 Date d'inscription dimanche 27 juillet 2003 Statut Membre Dernière intervention 20 janvier 2008 - 11 nov. 2003 à 12:37
Bonjour.

J'ai un problème assez ennuyeux avec une date.

J'ai une application en C# qui tourne avec une base Access.

Quand j'ouvre un formulaire de données de membre, il m'affiche sa date de naissance correctement. Si je sauve une modification (meme pas de date), il enregistre en permutant le jour et le mois de la date de naissance.

Je pense que c'est du au casting lors de la lecture dans la base de donnée (le datarow est casté en DateTime).

Quelqu'un pourrait-il m'en dire plus ? Ou m'aider à trouver la solution ?

Merci d'avance.

Heriquet

PS : je peux envoyer la source complète

PS 2 : le fichier de log

1/11/2003, 11:47:34 => -----------------------------
1/11/2003, 11:47:34 => |DEMARRAGE DE L'APPLICATION |
1/11/2003, 11:47:34 => -----------------------------
1/11/2003, 11:47:34, DEMARRAGE => Recherche de la BD
1/11/2003, 11:47:34 => INITIALISATIONS

** CHARGEMENT DU FORMULAIRE : c'est correct, la BD contient bien 12 mars 93
1/11/2003, 11:51:27, DATEN chargement 1 => 12/03/1993 0:00:00
1/11/2003, 11:51:27, DATEN jour => 12
1/11/2003, 11:51:27, DATEN mois => 3
1/11/2003, 11:51:27, DATEN annee => 1993
1/11/2003, 11:51:27 => 12/03/1993
1/11/2003, 11:51:27 => 12/03/1993 0:00:00
1/11/2003, 11:51:27, DATEN chargement => 12/03/1993 0:00:00
1/11/2003, 11:51:27, DATEN jour => 12
1/11/2003, 11:51:28, DATEN mois => 3
1/11/2003, 11:51:28, DATEN annee => 1993
1/11/2003, 11:51:32, DATEN ecriture => 12/03/1993
1/11/2003, 11:51:32, DATEN jour => 12
1/11/2003, 11:51:32, DATEN mois => 3
1/11/2003, 11:51:32, DATEN annee => 1993

** RECHARGEMENT DU FORMULAIRE : c'est correct, la BD contient bien 3 décembre 93, mais il y a une erreur qui s'est insérée, la permutation du 3 et du 12
1/11/2003, 11:52:04, DATEN chargement 1 => 3/12/1993 0:00:00
1/11/2003, 11:52:04, DATEN jour => 3
1/11/2003, 11:52:04, DATEN mois => 12
1/11/2003, 11:52:04, DATEN annee => 1993
1/11/2003, 11:52:04 => 03/12/1993
1/11/2003, 11:52:04 => 3/12/1993 0:00:00
1/11/2003, 11:52:04, DATEN chargement => 3/12/1993 0:00:00
1/11/2003, 11:52:04, DATEN jour => 3
1/11/2003, 11:52:04, DATEN mois => 12
1/11/2003, 11:52:04, DATEN annee => 1993
1/11/2003, 11:52:05, DATEN ecriture => 03/12/1993
1/11/2003, 11:52:05, DATEN jour => 3
1/11/2003, 11:52:05, DATEN mois => 12
1/11/2003, 11:52:05, DATEN annee => 1993

2 réponses

TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
11 nov. 2003 à 03:20
De mémoire c'etait du coté de access ce probleme mais bon voici un moyen de verifier si c .NET :

using System.Globalization;
DateTime _datetime = DateTime.Now;
string _formattedDateTime = _datetime.ToUniversalTime().ToString("s",
DateTimeFormatInfo.InvariantInfo) + "Z";

::|The S@ib|::
MVP C#.NET
0
heriquet Messages postés 13 Date d'inscription dimanche 27 juillet 2003 Statut Membre Dernière intervention 20 janvier 2008
11 nov. 2003 à 12:37
J'ai trouvé l'erreur...

Dand la construction de ma requete de modification, je modifie la date comme suit : string date dtpDate.ToString("dd/MM/yyyy");> DateTimePicker

alors que j'aurais du mettre

string date = dtpDate.ToString("MM/dd/yyyy");

DateTime n'a donc rien a voir comme je croyais mais bien le formatage de date américain qui m'a induit en erreur.
De meme, l'inversion ne s'effectuait pas si le jour était suppérieur à 12. J'aurais plutot attendu une exception qui préviens de l'impossibilité de convertir la date plutot que de voir ToString prendre la décision de convertir a sa manière.
Mais bon rien n'est parfait.

A+ et merci qd meme, je note toujours ce que tu me donnes.

Heriquet
0
Rejoignez-nous