[C# - OleDbDataReader] colonne de nombre reconnu a tort comme des dates.

Signaler
Messages postés
42
Date d'inscription
lundi 14 janvier 2008
Statut
Membre
Dernière intervention
23 septembre 2008
-
Messages postés
433
Date d'inscription
samedi 26 avril 2003
Statut
Membre
Dernière intervention
4 décembre 2009
-
Salut à tous,

Je vous explique mon problème, qui pourra faire sourire.

J'utilise un OleDbDataReader pour lire le contenu d'un fichier CSV (séparateur ; ).
J'ai une colonne qui contient des valeurs numériques qqcq.
Je n'ai aucun problème avec mon datareader en temps normal.

Le problème arrive quand je ne mets pas de valeur du style X,YY ou X,Y avec X < 24 si je mets un nombre du style 22,3 ou 6,8. Mon DataReader croit que la colonne est de type date et il me sorte la date suivante  : DateTime.Minimum + X heures + Y minutes (grosso modo il comprends que X,YY est un format de date du genre hh:mm (ce qui est absurde)), et pour toutes les autres valeurs qui seraient passées en temps normal il renvoie des datetime null.

Je sais pas si je suis clair en gros :

25,7
67,8
192
987
34,9
Mon datareader considère que ma colonne est bien de type number

25,7   

67,8   

22,7    <--

987    

34,9   
Mon datareader considère que l'ensemble de la colonne est de type datetime (verifié via le GetSchemaTable()).

j'ai pensé à un problème de culture j'ai tenté en utilisant des points au lieu de virgule même effet.

1 réponse

Messages postés
433
Date d'inscription
samedi 26 avril 2003
Statut
Membre
Dernière intervention
4 décembre 2009
1
Bonjour,

Comment récupères tu les données de ton datareader ?

Je suppose que tu fais un GetValue(). Essais de faire un GetFloat() à la place.