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

Linq Discussion :

Utiliser le résultat LINQ - Demande de conseil


Sujet :

Linq

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 216
    Par défaut Utiliser le résultat LINQ - Demande de conseil
    Bonjour à tous,

    La fonction ci-dessous utilise LINQ to SQL pour recupérer un enregistrement d'une table.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Function GetPageCurrent(ByVal nInventaire As Integer, ByVal nPage As Integer) As Array
                ' Envoie la page en cours de lecture
     
       Dim oDtRowResult = (From oPagesDoc In oScanDataContext.TblPagesDoc _
                                   Where oPagesDoc.Inventaire = nInventaire And _
                                         oPagesDoc.NumPage = nPage _
                                   Select oPagesDoc.Inventaire, oPagesDoc.NumPage,     oPagesDoc.NumSignet, _
                                          oPagesDoc.Fimage, oPagesDoc.Mhaute, oPagesDoc.Mgauche, _
                                          oPagesDoc.Agrandi)
    Return oDtRowResult.ToArray
            End Function
    La méthode "ToArray" crée un tableau de rang 1 qui contient une seule chaîne de caractères où sont concatennées toutes les valeurs du résultat de la requêtes. Pourquoi cette concaténation?
    Quelle technique dois-je pour récupérer chaque valeur du résultat séparément?

    Merci de vos lumières!
    Avec mes sincères salutations,

  2. #2
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Par défaut
    La solution la plus propre serait de créer un objet dans linq:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    (From oPagesDoc In oScanDataContext.TblPagesDoc _
                                   Where oPagesDoc.Inventaire = nInventaire And _
                                         oPagesDoc.NumPage = nPage _
                                   Select new PageDoc(oPagesDoc.Inventaire, oPagesDoc.NumPage,     oPagesDoc.NumSignet, _
                                          oPagesDoc.Fimage, oPagesDoc.Mhaute, oPagesDoc.Mgauche, _
                                          oPagesDoc.Agrandi))
    Tu obtiendrais alors un tableau d'objets PageDoc.
    Si tu ne souhaites retourner qu'un seul enregistrement de ta base (1 ligne) tu devras utiliser .FirstOrDefault et alors tu pourras faire utiliser le resultat ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    label.text=oDtRowResult.Inventaire

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 216
    Par défaut
    En reprenant ton code tel quel, j'obtenais un message: "Arguments trop nombreux pour 'Public Sub New()' "

    J'ai alors écris la fonction comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        Class TablePagesDoc  ' Ensemble des requêtes SQL sur la table "PagesDoc"
            Dim oScanDataContext As New ScanBibLINQDataContext
            Dim oPagesDoc As New TblPagesDoc
            Sub Test(ByVal nInventaire As Integer, ByVal nPage As Integer)
                Dim PageDoc As New Object
                Dim oDtRowResult = (From oPagesDoc In oScanDataContext.TblPagesDoc _
                                   Where oPagesDoc.Inventaire = nInventaire And _
                                         oPagesDoc.NumPage = nPage _
                                   Select New TblPagesDoc)
     
            End Sub

    Mais je ne retrouve aucun champ de la table dans "oDtRowResult". Que faire?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 216
    Par défaut
    Connais-tu une source documentaire qui explique la manière de récupérer le résultat des requêtes LINQ?

    Je suis autoditacte et je patauge beaucoup sur cet aspect, pourtant si primordial, de l'accès aux données...

  5. #5
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Par défaut
    Désolé j' en ai pas un qui pourrait faire référence.
    Mais en regardant sur msdn tu trouveras: http://msdn.microsoft.com/fr-fr/data/cc936565.aspx

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 216
    Par défaut
    Merci de l'info

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

Discussions similaires

  1. demande de conseil pour utilisation de grep
    Par JoneZy dans le forum Linux
    Réponses: 2
    Dernier message: 01/11/2009, 12h11
  2. Demande de conseil: quoi utiliser?
    Par abel.ludba dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 31/05/2008, 21h36
  3. demande de conseil pour l'utilisation du BIRT
    Par amarige dans le forum BIRT
    Réponses: 2
    Dernier message: 05/12/2007, 22h28
  4. Réponses: 0
    Dernier message: 05/09/2007, 13h24
  5. demande de conseils sur l'utilisation d'index
    Par Ickou dans le forum Requêtes
    Réponses: 4
    Dernier message: 29/03/2006, 12h13

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