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

ikaer Messages postés 42 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 23 septembre 2008 - 23 sept. 2008 à 15:15
titeoe Messages postés 433 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 4 décembre 2009 - 30 sept. 2008 à 08:43
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

titeoe Messages postés 433 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 4 décembre 2009 1
30 sept. 2008 à 08:43
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.
0
Rejoignez-nous