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 :

Résultat d'une requete dans un Datable


Sujet :

Linq

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 304
    Par défaut Résultat d'une requete dans un Datable
    Bonjour,
    J'ai rempli une GridView de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlGridView.DataSource = req.ToList();
    req étant ma requete :
    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
     
    var req = from horaire in doc.Descendants("horaire")
    where horaire.Attribute("date").Value == DateEdit.Text.ToString()
    select new
    {
                          id = horaire.Attribute("id").Value,
                          Client = horaire.Attribute("client").Value,
                          Date = horaire.Attribute("date").Value,
                          Debut = horaire.Attribute("debut").Value,
                          Fin = horaire.Attribute("fin").Value,
                          Duree = horaire.Attribute("duree").Value,
                          Operation = horaire.Attribute("operation").Value,
                          Description = horaire.Attribute("fact_text").Value,
                          Remarque = horaire.Attribute("int_rem").Value,
                          Prestation = horaire.Attribute("nPrestation").Value,
                          Facturer = horaire.Attribute("facturer").Value,
                          Temporaire = horaire.Attribute("temporaire").Value
    };
    Le problème c'est que je n'arrive pas à modifier ma GridView du coup.
    Est ce que c'est possible de mettre le résultat de ma requete dans un dataset ou un datatable qui devrait etre modifiable?

    Merci de votre aide

  2. #2
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Par défaut
    C'est parce que ta requête Linq génère des types anonymes.

    Tu utilises un DataSet/DataTable typé ? J'entend par "typé" qu'il a été créé avec le designer de DataSet/DataTables.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 304
    Par défaut
    J'ai pas de DataSet pour le moment, j'aimerais faire qqc comme :

    DataSet DS = new DataSet("xmlData");
    DS.dataSource = LinqQuery;
    DS.DataBind();

  4. #4
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Par défaut
    Non pas possible il me semble. En tout cas, pas comme tu l'espères.

    La seule idée qui me vient, c'est de tout bètement convertir chaque élément de ta requête Linq en un DataRow.

    Il y a peut être plus simple mais je t'avoue que je ne vois quoi dans ce cas là.

  5. #5
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Par défaut
    Re,

    Décidément, nos destins ne font que se croiser

    J'ai compris pourquoi tu ne pouvais pas utiliser la méthode d'extension CopyToDataTable. Celle-ci n'est utilisable que sur les types IEnumerable acceptant un DataRow. Pour plus d'infos, voire ce lien.

    Donc le top serait d'avoir une CopyToDataTable qui marche sur tous les types IEnumerable<T>. Et MSDN contient un exemple ! Voici le lien.

    Avec cette méthode tu pourras convertir le résultat de ta requête en datatable que tu pourras utiliser pour comme datasource. Cela devrait te permettre d'activer la modification sur ton gridview.

  6. #6
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Par défaut
    Citation Envoyé par Paul Musso Voir le message
    Re,

    Décidément, nos destins ne font que se croiser

    J'ai compris pourquoi tu ne pouvais pas utiliser la méthode d'extension CopyToDataTable. Celle-ci n'est utilisable que sur les types IEnumerable acceptant un DataRow. Pour plus d'infos, voire ce lien.

    Donc le top serait d'avoir une CopyToDataTable qui marche sur tous les types IEnumerable<T>. Et MSDN contient un exemple ! Voici le lien.

    Avec cette méthode tu pourras convertir le résultat de ta requête en datatable que tu pourras utiliser pour comme datasource. Cela devrait te permettre d'activer la modification sur ton gridview.
    C'est pas mal, bon lien

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 304
    Par défaut
    Ouai ca m'a l'air de pas mal marcher, en tout cas j'arrive à modifier maintenant mais j'ai l'update qui merde mais je pense ca va s'arranger, sinon je sais où aller

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 304
    Par défaut
    Ok c'est bon tout marche, merci de votre aide

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 02/05/2006, 16h28
  2. [MySQL] affichage du résultat d'une requete dans une page
    Par blackbird1 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 08/03/2006, 14h07
  3. placer une résultat d'une requete dans un champs
    Par valaidnew dans le forum Access
    Réponses: 5
    Dernier message: 03/03/2006, 10h34
  4. Réponses: 3
    Dernier message: 25/11/2005, 14h51
  5. Réponses: 6
    Dernier message: 27/09/2005, 16h19

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