Bonjour,
Je développe actuellement un application C# & WPF sous Visual Studio 2010 associée à une BDD SQLite.
Je dois importer des données d'un fichier csv dans une table.
format du csv :
NB_LIGNE |
ID_A |
QUAN |
UNIT |
REPERE |
DES |
REF |
TYPE |
EDIT : La colonne NB_LIGNE a une seule valeur dans tous le document
Lors de la création de la table j'ajoute une colonne ID comme clef primaire et avec AUTOINCREMENT.
CREATE TABLE IF NOT EXISTS main.BOM (ID INTEGER PRIMARY KEY NOT NULL, NB_LIGNE, ID_A, QUAN, UNIT, REPERE, DES, REF, TYPE);
Pour l'insertion je commence par ouvrir le csv et après avoir découpé la ligne j'insère les éléments découpés. Le problème est qu'après la première insertion une exception est levée comme quoi un item avec la même clef a déjà été ajouté. j'ai donc fais quelques essais d'insertion différentes :
insert into BOM values (null, '" + ligneSplit[0] + "', '" + ligneSplit[1] + "', '" + ligneSplit[2] + "', '" + ligneSplit[3] + "', '" + ligneSplit[4] + "', '" + ligneSplit[5] + "', '" + ligneSplit[6] + "', '" + ligneSplit[7] + "');
j'ai aussi essayé :
insert into BOM values ('" + ligneSplit[0] + "', '" + ligneSplit[1] + "', '" + ligneSplit[2] + "', '" + ligneSplit[3] + "', '" + ligneSplit[4] + "', '" + ligneSplit[5] + "', '" + ligneSplit[6] + "', '" + ligneSplit[7] + "');
insert into BOM (ID, NB_LIGNE, ID_A, QUAN, UNIT, REPERE, DES, REF, TYPE) values ('" + ligneSplit[0] + "', '" + ligneSplit[1] + "', '" + ligneSplit[2] + "', '" + ligneSplit[3] + "', '" + ligneSplit[4] + "', '" + ligneSplit[5] + "', '" + ligneSplit[6] + "', '" + ligneSplit[7] + "');
mais rien ne fonctionnait. J'ai donc essayé de faire mon ID avec une variable mais le problème reste inchangé.
insert into BOM values ("+nbElemBOM+" ,'" + ligneSplit[0] + "', '" + ligneSplit[1] + "', '" + ligneSplit[2] + "', '" + ligneSplit[3] + "', '" + ligneSplit[4] + "', '" + ligneSplit[5] + "', '" + ligneSplit[6] + "', '" + ligneSplit[7] + "');
bref je commence a être en panne d'idée, Si quelqu'un pouvais m'aider sur ce problème, merci
EDIT : J'ai essayé en console avec un exécutable sqlite, la technique d'insertion avec null fonctionne parfaitement
EDIT 2 FIN : Problème résolu mon fichier de paramétrage de la table ne contenait pas de champs ID. je marque la discussion comme résolue
Partager