IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Eviter les doublons de champ (MySQL ADO C#)


Sujet :

Requêtes MySQL

  1. #1
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut Eviter les doublons de champ (MySQL ADO C#)
    Bonjour

    Petite question concernant mise a jour DB et controle duplicates

    Je presente a l'utilisateur un DGV peuplé avec le resultat d'un query, l'utilisateur peut ajouter des lignes
    La cléf primaire est cachée et auto increment

    Mais d'autres champs que l'utilisateur peut remplir ne veuvent pas etre dupliqués
    Quelle serait la bonne maniere de faire

    Actuellement je songe faire une boucle pour chaque ligne ajoutée et lancer des query dans la base pour chacun de ces champs : il y a -til une autre manière ?

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 040
    Points : 23 795
    Points
    23 795
    Par défaut
    Bonjour,

    Tu peux rajouter une contrainte UNIQUE sur les colonnes concernées (je ne sais plus si il y a une limite sur le nombre de colonnes auxquelles on met UNIQUE dans MySQL).
    Tu peux aussi, si je me souviens bien, mettre une contrainte UNIQUE sur plusieurs colonnes associées (comme on ferait une clef concaténée), pour forcer l'unicité de la combinaison de ces colonnes ensembles.

    ced

  3. #3
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut Merci
    C'est ca

    Il faut mettre des index sur ces champs et les declarer uniques

    (pas de limitation)

    Reste a voir comment je vais intercepter cela en C#

    Soit je fais un select avant chaque insert style :Soit je ne sais pas
    L'avantage de l'index unique ici c'est que mon where sera beaucoup plus rapide (mais meme pas besoin d'etre unique dans ce cas)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
           for (int i = 0; i < tCont.Rows.Count; i++)
            {
              string selectcmd = "SELECT * FROM `containers` WHERE R_Num=" + tCont.Rows[i]["R_Num"];
              adaTmp.SelectCommand = new MySqlCommand(selectcmd, MyConn.conn);
              adaTmp.Fill(dsTmp);
              if (dsTmp.Tables[0].Rows.Count > 0)
              {
                // mesage duplicate
                continue;
              }
            }

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 040
    Points : 23 795
    Points
    23 795
    Par défaut
    Ou alors, tu gères l'erreur renvoyée par MySQL quand il y a insertion d'un champ déjà présent.
    N'ayant aucune compétence en C#, je ne peux pas t'aider sur la gestion des erreurs ... Mais ça doit être jouable (plutôt que de faire un select avant, auquel cas l'intérêt du UNIQUE devient limité...).

    ced

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Eviter les doublons PHP MYSQL
    Par ssate36 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 06/06/2012, 17h49
  2. Eviter les doublons sur un champ SQL Serveur 2005
    Par crashyear dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/12/2006, 08h02
  3. Eviter les doublons entre les champs
    Par Waluigi dans le forum Access
    Réponses: 1
    Dernier message: 15/05/2006, 11h11
  4. Eviter les doublons
    Par cyrill.gremaud dans le forum ASP
    Réponses: 5
    Dernier message: 14/09/2005, 12h37
  5. [langage] 2 fichier dans 1 en evitant les doublons
    Par remixxl dans le forum Langage
    Réponses: 6
    Dernier message: 26/07/2004, 17h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo