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

VB.NET Discussion :

Eviter les doublons dans une tables ..


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 91
    Par défaut Eviter les doublons dans une tables ..
    Bonjour,
    s'il vous plait je voudrais savoir comment faire pour afficher un message pour l'utilisateur quand l'erreur est du genre: "Violation of PRIMARY KEY .." disant par exple : "Ce numero est déjà utilisé" ..
    Afin d'éviter les doublons de la table.
    J'arrive pas a faiire la fonction qui me permettera de tester si le numero existe ou pas !
    J'espr avoir de l'aide ..
    Mercii d'avance !!

  2. #2
    Rédacteur
    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Billets dans le blog
    121
    Par défaut
    C'est assez simple il suffit juste que tu mette ton code d'insertion dans un try et dans le catch tu affiche le message d'erreur, lorsqu'il y'aura contrainte de violation de clé le message va être afficher a l'utilisateur.

    @++
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 91
    Par défaut
    Ouii c'est vrai !
    Mais je me demandaiis si jamais il y'a une erreur autre que la violation de la clé on va afficher le même message. Puisqu'il est définit dans le bloc try catch ! Mais je pense pas qu'il y'aura une autre erreur autre que la violation de la clé ^^

    Mercii pour la réponse

  4. #4
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,

    Il faut quand même tester le contenu du message de l'exception dans try catch avant de l'afficher:
    - si il contient "Violation of PRIMARY KEY", tu affiches "Ce numero est déjà utilisé" ..
    - sinon, soit tu affiches le texte du message d'exception, soit tu fais un throw exception avec l'exception du catch.

  5. #5
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par défaut
    Bonsoir,

    Bon, moi je travail sur un autre principe.

    Au début, tu peux tester si la valeur entrée existe déjà ou pas (WHERE), si elle existe il suffit d'afficher un messageBox. Et dans le catch, ce n'est pas la peine d'indiquer l'erreur exacte car il peut y avoir plusieurs... donc un message standard suffit

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    solution pour sql server (je ne sais pas si ca marche sur d'autres sgbdr, et tu ne précises pas le tiens ...)

    à mettre dans le commandtext

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    DECLARE @ExisteDeja bit
    IF EXISTS (SELECT 1 FROM table WHERE cle = @clevoulue)
      begin
        SET @ExisteDeja  = 1
        SELECT @ExisteDeja  
        RETURN
      end
     
    INSERT INTO normal ...
    SET @ExisteDeja  = 0
    SELECT @ExisteDeja  
    RETURN

    faire .parameters.Add("@clevoulue",type).value = valeur sur le command
    puis executereader et .read
    et enfin vérifier le booléen pour afficher ou non un message
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 91
    Par défaut
    Mercii pour vos réponses ..

    Citation Envoyé par spamitovic Voir le message
    Bonsoir,

    Bon, moi je travail sur un autre principe.

    Au début, tu peux tester si la valeur entrée existe déjà ou pas (WHERE), si elle existe il suffit d'afficher un messageBox. Et dans le catch, ce n'est pas la peine d'indiquer l'erreur exacte car il peut y avoir plusieurs... donc un message standard suffit
    J'ai pensé à ça .. mais j'ai pas su comment écrire " Si la valeur du textbox1 est égale à l'une des valeurs existantes dans la listbox1 (par exple)"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Textbox1.Text = Listbox1.?
    J'ai pas su quoi mettre à la place du ?

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

Discussions similaires

  1. supprimer les doublons dans une table
    Par mavean dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 26/06/2019, 13h26
  2. Eviter les doublons dans une requête.
    Par Smint dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 22/03/2017, 16h17
  3. Eviter les doublon dans une table en mode edit
    Par stfanny31 dans le forum Bases de données
    Réponses: 13
    Dernier message: 06/05/2012, 07h39
  4. Réponses: 0
    Dernier message: 09/02/2011, 09h13
  5. Eviter les doublons dans une requete ?
    Par DrySs dans le forum Requêtes
    Réponses: 1
    Dernier message: 30/03/2006, 05h24

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