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

ASP.NET Discussion :

Récupérer une liste de données d'une table (en utilisant link to sql)


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 196
    Par défaut Récupérer une liste de données d'une table (en utilisant link to sql)
    Bonjour, En fait pour récupérer toutes les caractéristiques d’une demande en fonction d’un champ que je fais comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    T_TRANS_DEMANDE pDemande = db.T_TRANS_DEMANDE.SingleOrDefault(d => d.Dem_intID == IdDemande);
    Moi ce que j’aimerais faire c’est récupérer une liste de champs c’est à dire un objet qui en fonction d’un champ qui peut être commun à plusieurs objet renvoi cette liste d’objet.

    Merci d'avance !

  2. #2
    Membre émérite Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Par défaut
    Moi ce que j’aimerais faire c’est récupérer une liste de champs c’est à dire un objet qui en fonction d’un champ qui peut être commun à plusieurs objet renvoi cette liste d’objet.
    Peux tu être un peu plus précis? Mais déjà tu as la méthode d'extension Where ou FindAll pour le faire. A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 196
    Par défaut
    En fait j'aimerais récupérer une lsite d'objet et ça je ne sais pas le faire.
    Je sais juste récupère un objet en fonction d'un ou plusieurs paramètres.
    Là je vais faire une requête sql qui va forcément me retourner plusieurs résultats (par exemple je veux toutes les personnes qui habitent Paris)
    J'aimerais savoir comment faire.

    j'espère avori été plus clair

  4. #4
    Membre émérite Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Par défaut
    Bonjour,

    par exemple je veux toutes les personnes qui habitent Paris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    List<Personne> personnes = (from p in db.Personnes
                                     where p.ville=="Paris"
                                  select p).ToList();

  5. #5
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    La solution de Ramajb est un bon exemple, voilà une autre solution en utilisant la syntaxe Lambda:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IEnumerable<T_TRANS_DEMANDE> pDemande = db.T_TRANS_DEMANDE.Select(d => d.Dem_intID == IdDemande);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var pDemande = db.T_TRANS_DEMANDE.Select(d => d.Dem_intID == IdDemande);
    après tu peux aussi faire comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var pDemande = db.T_TRANS_DEMANDE.Select().Where(d => d.Dem_intID == IdDemande);
    Si tu utilise Single il te retournera forcément un enregistrement

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 196
    Par défaut
    Merci beaucoup à vous deux
    Je vais voir avec ça mais ça devrait fonctionner sans problème

    Merci encore !

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 196
    Par défaut
    Re,
    j'ai essayé ce que vous m'aviez conseillé de faire mais est-ce que cela me retourne bien une list car j'ai l'impression que non d'après les messages ?

    Mais en faisant ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
         IEnumerable<T_TRANS_DEMANDE_CONDITION> pCondition = db.T_TRANS_DEMANDE_CONDITION.Select(d => d.DC_intDemande == IdDemande);
    J'ai une erreur qui me dit ce qu'il y a dans l'image en pièce jointe

    Ensuite cette façon ne fonctionne pas chez moi le "where" ne m'est pas proposé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var pDemande = db.T_TRANS_DEMANDE.Select().Where(d => d.Dem_intID == IdDemande);
    Enfin, cette façon de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var pDemande = db.T_TRANS_DEMANDE.Select(d => d.Dem_intID == IdDemande);
    Que j'ai modifié ce qui donnait ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       var dc = db.T_TRANS_DEMANDE_CONDITION.Select(d => d.DC_intDemande == IdDemande);
    J'obtiens donc si j'ai bien compris une list de demande_condition en fonction de l'id de la demande que j'ai rentré.Néanmoins, comment ensuite récupérer les différents libelles condition en fonction des idcondtion que j'ai récupéré dans ma list dc ?



    En fait mes tables sont composées de cette façon :

    demande (Dem_intID, ...)
    demande_condition (DC_intDemande#, DC_intCondition#)
    condition(Con_intID, Con_strLibelle)

    Donc en gros j'ai l'id de la demande. et une demande peut avoir de 1 à n conditions.

    C'est pour cela que j'aimerais récupérer dans un premier temps, les condition en fonction de leur id via la table demande condition.
    Pour cela je vais récupérer (ce que j'essaie de faire plus haut) toutes les id conditions pour la demande soit une liste de condition.

    Ensuite en fonction de ces id conditions récupéré dans ma liste pour la demande que j'ai choisi précédemment, je vais récupérer les libelles condition dans une autre liste.

    J'espère avoir été clair...

    Merci d'avance !
    Images attachées Images attachées  

  8. #8
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    Pour le where il faut que tu es
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Using System.Linq;
    De quel type est ton Dem_intID dans ta base et ton IdDemande dans ton programme?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var pDemande = db.T_TRANS_DEMANDE.Where(d => d.Dem_intID ==IdDemande).Select();

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 196
    Par défaut
    Int

    En faisant ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        var pDemande = db.T_TRANS_DEMANDE_CONDITION.Where(d => d.DC_intDemande == IdDemande).Select();
    J'ai un message d'erreur qui me dit que select ne prend pas comme argument 0.

  10. #10
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    tu as quoi comme valeur dans ton iddemande ?
    essaye avec un id existant en base pour voir

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 196
    Par défaut
    Il a une valeur je m'en sers plusieurs fois dans mon code précédemment sans rencontrer de problèmes.

  12. #12
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    si tu fais juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     var pDemande = db.T_TRANS_DEMANDE_CONDITION.Select();
    t'as aucune erreur ?

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 196
    Par défaut
    Si, toujours le même
    aucune surchage pour la méthode select ne prend d'arguempent 0.

    J'ai essayé la façon de l'autre forumeur et ça fonctionne mise à part que je ne sais pas comment ensuite récupérer
    --> Ensuite en fonction de ces id conditions récupéré dans ma liste pour la demande que j'ai choisi précédemment, je vais récupérer les libelles condition dans une autre liste. (cf chose en orange)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    List<T_TRANS_DEMANDE_CONDITION> dc = (from p in db.T_TRANS_DEMANDE_CONDITION
                                                where p.DC_intDemande == IdDemande
                                                select p).ToList();
    
                    List<T_TRANS_CONDITION> c = (from f in db.T_TRANS_CONDITION
                                                          where f.Con_intID == dc.???
                                                          select p).ToList();

  14. #14
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    foreach( T_TRANS_DEMANDE_CONDITION item in dc)
    {
    T_TRANS_CONDITION t= from f in db.T_TRANS_CONDITION
                                                          where f.Con_intID == item.toto
                                                          select p
    c.add(t);
    }

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 196
    Par défaut
    J'ai tenté ça.
    Qu'en penses tu ?

    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
    string ListeCondition = "";
     
                      List<T_TRANS_DEMANDE_CONDITION> dc = (from p in db.T_TRANS_DEMANDE_CONDITION
                                                where p.DC_intDemande == IdDemande
                                                select p).ToList();
                    List<T_TRANS_CONDITION> lListCondition = new List<T_TRANS_CONDITION>();
                    foreach( T_TRANS_DEMANDE_CONDITION item in dc)
    {
    T_TRANS_CONDITION t =  db.T_TRANS_CONDITION.SingleOrDefault(d => d.Con_intID == item.DC_intCondition);
    lListCondition.Add(t);
    }
     
     
                    foreach (T_TRANS_CONDITION item in lListCondition)
                    {
                        ListeCondition = ListeCondition + item.Con_strLibelle + " ; ";
                    }

  16. #16
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    oui ça semble bon tu peux aussi faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     ListeCondition += item.Con_strLibelle + " ; ";

  17. #17
    Membre émérite Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Par défaut
    Citation Envoyé par youtpout978 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    foreach( T_TRANS_DEMANDE_CONDITION item in dc)
    {
    T_TRANS_CONDITION t= from f in db.T_TRANS_CONDITION
                                                          where f.Con_intID == item.toto
                                                          select p
    c.add(t);
    }
    Le model relationnel, ça sert a quoi? Justement c'est pour faciliter les navigations entre les données qui sont fortement liées. Plusieurs technique existe mais la jointure reste le moyen le plus facile et rapide a mettre en place.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var conditionLabelList = (from dmdCond in db.T_TRANS_DEMANDE_CONDITION
                                   join cond in db.T_TRANS_CONDITION 
                                       on dmdCond.DC_intCondition equals cond.Con_intID
                                   where dmdCond.DC_intDemande== IdDemande
                                   select dmdCond).ToList();

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/10/2008, 12h16
  2. Afficher le contenue d'une base de données dans une liste
    Par fdoncev dans le forum SharePoint
    Réponses: 3
    Dernier message: 16/07/2008, 18h00
  3. Charger une liste déroulante à partir d'une base de donnée
    Par mr_simon dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 04/07/2007, 08h32
  4. [Liste]Affichage données dans une liste
    Par Zartak dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 22/05/2007, 17h02
  5. Réponses: 1
    Dernier message: 20/03/2007, 09h24

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