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

Silverlight Discussion :

Ajouter un enregistrement avec vérification d'existence !


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 25
    Par défaut Ajouter un enregistrement avec vérification d'existence !
    Bonjour

    Je travaille sur une petite application Silverlight et j'ai comme outil Microsoft Visual Studio 2010 et Silverlight 4. Mon problème est le suivant :

    J'ai une base de données que j'affiche a l'aide des Class Domain Service et j'ai créé un web service pour ajouter des enregistrements. L'ajout se fait nickel sans faute mais ce que j'aimerais rajouter est une vérification de l'existence de l’élément a ajouter , genre si l'enregistrement existe j'affiche un mesage d'erreur comme quoi il est existent dans la table et il ne l'enregistre pas sinon il l'enregistre :
    (le nom , prenom,service ,faculté je l'ai recupere des TextBo)

    Voici ma procedure d'ajout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    public List<Table_Des_Employes> AjoutEMP(string nom, string prenom, string service, string faculte)
            {
                List<Table_Des_Employes> LISTE_EMP = new List<Table_Des_Employes>();
     
                using (Base_De_Donee_GISEntities BDD = new Base_De_Donee_GISEntities())
                {
                    int ma = BDD.EMPLOYE.Max(p => p.CODE) + 1;
                    EMPLOYE employes = new EMPLOYE()
                    {
                        CODE = ma,
                        NOM = nom,
                        PRENOM = prenom,
                        SERVICE = service,
                        FACULTE = faculte
                    };
                    BDD.AddToEMPLOYE(employes);
                    BDD.SaveChanges();
     
                    foreach (var Ligne in LISTE_EMP)
                    {
                        LISTE_EMP.Add(new Table_Des_Employes(Ligne.NOM, Ligne.PRENOM, Ligne.SERVICE, Ligne.FACULTE));
                    }
     
                    return LISTE_EMP;
     
                }
     
     
            }
    Merci pour votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Il te suffit simplement de vérifier en base si il y a déjà un employé avec le même nom et prénom par exemple.

  3. #3
    Membre averti
    Inscrit en
    Février 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 25
    Par défaut
    Oui , c'est ce que je voulais faire , et c'est aussi mon problème ! donc je ne sais pas trop comment m'y faire face a ça
    merci de votre aide.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par darkaminoo Voir le message
    Oui , c'est ce que je voulais faire , et c'est aussi mon problème ! donc je ne sais pas trop comment m'y faire face a ça
    merci de votre aide.
    Tu fais une simple requête linq, je vois pas ce qui t'embête.

    Quelque chose dans le genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var result = BDD.EMPLOYE.Where(emp => emp.NOM == nom && emp.PRENOM == prenom).FirstOrDefault();

    Et ensuite, tu fais un contrôle sur result :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (result == null)
    // aucun employé ne porte ce nom et ce prénom, tu peux faire l'ajout
    else
    // il y a déjà un employé avec ce nom et ce prénom

  5. #5
    Membre averti
    Inscrit en
    Février 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 25
    Par défaut
    merci beaucoup !

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 66
    Par défaut
    L'idée est bonne mais ça génère un select en SQL alors que ça ne sert pas à grand chose. Il me semble qu'il y a moyen de faire plus performant.

    Corrigez moi si je me trompe mais je pense qu'il faudrait mieux faire un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    bool exists = BDD.EMPLOYE.Any(emp => emp.NOM == nom && emp.PRENOM == prenom);
     
    if (exists)
    ...
    else
    ...
    Il me semble que ça génère un IF(EXISTS()) en SQL mais j'ai pas spécialement vérifié.

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

Discussions similaires

  1. [AC-2010] Ajouter un enregistrement avec une piece jointe
    Par docjo dans le forum VBA Access
    Réponses: 1
    Dernier message: 08/08/2012, 23h27
  2. ajouter , modifier enregistrement avec vba
    Par lecaire dans le forum VBA Access
    Réponses: 4
    Dernier message: 30/10/2011, 21h59
  3. Requête avec vérification d'existence dans une autre table
    Par TigerCX dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/04/2011, 19h06
  4. ajouter plusieurs enregistrements avec un bouton
    Par triaguae dans le forum IHM
    Réponses: 3
    Dernier message: 27/05/2008, 16h55
  5. Réponses: 3
    Dernier message: 07/02/2006, 13h25

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