Problème de doublons
Résolu
coxycross
Messages postés
788
Date d'inscription
Statut
Membre
Dernière intervention
-
coxycross Messages postés 788 Date d'inscription Statut Membre Dernière intervention -
coxycross Messages postés 788 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis novice en MySql et je suis en train de développer une application et C#.
En fait, j'importe un fichier .csv dans ma base de données.
Dans mon fichier csv, j'ai environ 1000 lignes, ces lignes représentes chacune une personne (Avec Nom, Prénom, Classe, N°Carte).
J'importe ce fichier dans ma BDD, qui contient déjà des personnes.
Il est donc fortement possible qu'il y est des doublons entre mon fichier csv et ma BDD.
Comme le N°Carte doit etre unique, avec phpMyAdmin, je l'avais mis en Unique.
Ça marche pas trop mal, mais je rencontre un soucis. En fait, des que je lance mon importation (donc le contenu de mon fichier csv est copié dans ma BDD), et qu'un doublon est rencontré, tout s'arrête. Au lieu de simplement 'zapper' cette personne, tout est arreté.
Exemple : Si j'ai un fichier de 1000 personnes, et que le doublon apparaît à la 3eme ligne, les 997 autres personnes ne sont pas importées.
Si avec visual studio, je passe en mode debug, je me rends compte qu'en fait, des que le doublon apparait, mon code passe directement dans le catch.
Donc y a-t-il un autre moyen d'éviter les doublons ?
Est-ce qu'il est possible de faire ça en modifiant ma requete sql ?
Est-ce que l'on peut se servir de distinct dans ce cas ?
Toute aide est la bienvenue !
Merci d'avance
Coxycross :)
Je suis novice en MySql et je suis en train de développer une application et C#.
En fait, j'importe un fichier .csv dans ma base de données.
Dans mon fichier csv, j'ai environ 1000 lignes, ces lignes représentes chacune une personne (Avec Nom, Prénom, Classe, N°Carte).
J'importe ce fichier dans ma BDD, qui contient déjà des personnes.
Il est donc fortement possible qu'il y est des doublons entre mon fichier csv et ma BDD.
Comme le N°Carte doit etre unique, avec phpMyAdmin, je l'avais mis en Unique.
Ça marche pas trop mal, mais je rencontre un soucis. En fait, des que je lance mon importation (donc le contenu de mon fichier csv est copié dans ma BDD), et qu'un doublon est rencontré, tout s'arrête. Au lieu de simplement 'zapper' cette personne, tout est arreté.
Exemple : Si j'ai un fichier de 1000 personnes, et que le doublon apparaît à la 3eme ligne, les 997 autres personnes ne sont pas importées.
Si avec visual studio, je passe en mode debug, je me rends compte qu'en fait, des que le doublon apparait, mon code passe directement dans le catch.
Donc y a-t-il un autre moyen d'éviter les doublons ?
Est-ce qu'il est possible de faire ça en modifiant ma requete sql ?
RPassageAnnee = "INSERT INTO eleves(Nom,Prenom,Classe,NumCarte) VALUES('" + Nom[i] + "','" + Prenom[i] + "','" + Classe[i] + "', '" + NumCarte[i] + "')"; MySqlCommand cmdPassageAnnee = new MySqlCommand(RPassageAnnee, conn); cmdPassageAnnee.ExecuteNonQuery();
Est-ce que l'on peut se servir de distinct dans ce cas ?
Toute aide est la bienvenue !
Merci d'avance
Coxycross :)
A voir également:
- Problème de doublons
- Doublons photos - Guide
- Supprimer les doublons excel - Guide
- Supprimer les doublons photos gratuit - Télécharger - Nettoyage
- Supprimer les doublons (excel 2003) ✓ - Forum Excel
- Notepad++ supprimer les doublons - Forum Programmation
3 réponses
Je viens de tester, cela :
Et lorsque j'ouvre mon fichier, et que je commence l'importation, j'ai une erreur de syntaxe dans le ON DUPLICATE etc ....
Une idée ?
RPassageAnnee = "INSERT INTO eleves(Nom,Prenom,Classe,NumCarte) VALUES('" + Nom[i] + "','" + Prenom[i] + "','" + Classe[i] + "', '" + NumCarte[i] + "' ON DUPLICATE KEY UPDATE Nom='" + Nom[i] + "')";
Et lorsque j'ouvre mon fichier, et que je commence l'importation, j'ai une erreur de syntaxe dans le ON DUPLICATE etc ....
Une idée ?
Parce que dans les exemples que l'on voit, lorsque la clef existe déjà, on fait une opération quelconque. Mais moi il ne doit justement rien se passer quand il y a un doublon, ce doublon ne doit pas être importé, puis l'importation reprend, et les autres sont bien ajoutés dans ma BDD
ON DUPLICATE KEY UPDATE Nom=Nom