Bonjour,
J'utilise la méthode LOAD LOCAL DATA INFILE pour insérer mes données dans MySQL. L'insertion fonctionne bien quand mon ordinateur est dans un environnement anglais. Par contre avec un environnement français j'ai des problème pour insérer des valeurs doubles.
Pour résoudre ce problème j'ai rajouté un paramètre qui change les virgules du décimal en point
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
command.CommandText = string.Format("LOAD DATA LOCAL INFILE '{0}' INTO TABLE {1}  FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (Model_ID,ComponentNumber,Observation,type,Score_Value) set Score_Value=replace(Score_Value,',','.');",
                        filePath.Replace("\\", "/"), tableName);
Avec cette requête l'insertion fonctionne.
Sinon,en utilisant la requête sans définir mes champs, l'insertion fonctionne également.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
command.CommandText = string.Format("LOAD DATA LOCAL INFILE '{0}' INTO TABLE {1} FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n' IGNORE 1 LINES", fullPath, tableName);
Cependant les données dans la base de données ne sont pas correctes. Par exemple, j'ai une valeurs 8,456, elle sera 8 dans la base de données. Durant, l'insertion la méthode LOAD INFILE caste les données. Est ce qu'il y a un moyen de gérer les doubles en format français pendant l'insertion avec cette méthode?