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 :

Récupérer des données d'une base ?


Sujet :

Silverlight

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 16
    Par défaut Récupérer des données d'une base ?
    Re-bonjour à tous,

    Alors toujours une question assez bête je pense ... Mais je fais un projet Silverlight ou je voudrai récupérer des données d'une base de données SQL.
    Donc j'utilise le Model ADO.Net, je crée mes DomainServiceClass, aucun souci.
    Je récupère bien mes requêtes et mes données dans une Datagrid no souci !

    Mais, je voudrais utiliser des foreach dans mon code behind.

    Voila mon début de code pour récupérer dans ma datagrid :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var context = new DomainServiceEvents();
                dataEvents.ItemsSource = context.TAB1;
                context.Load(context.GetQuery());
    Mais comment récupérer ça dans un .ToList() ? Je pensais à un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    listeQuery = context.TAB1.ToList();
     
                    foreach (var m in listeQuery)
                    {
                        TextBlock.Text = m.ID;
                    }
    Aucune erreur, mais aucun résultat ... Je m'égare totalement ? Ou s'agit-il de problème de synchronisation ? Je récupère mes données sur une base distante.

    Merci bien ! Je bloque complètement .. Snif !

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Si tu ne charges pas les données, cela ne peut rien renvoyer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var context = new DomainServiceEvents();
    dataEvents.ItemsSource = context.TAB1;
    context.Load(context.GetQuery()); 
     
    listeQuery = context.TAB1.ToList();
     
    foreach (var m in listeQuery)
    {
    TextBlock.Text = m.ID;
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 16
    Par défaut
    Oui mais ce n'est pas la ligne context.Load(context.Query) qui est sensée faire ça ?

    Ma Datagrid est bien remplie des données, ça aucun souci, mais les autres requêtes ne marchent pas.

    Il y a peut être une ligne manquante dans votre réponse ? Vu qu'il s'agit de ce que j'avais écrit en fait.

    Merci de m'aider !

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par vincentDec Voir le message
    Oui mais ce n'est pas la ligne context.Load(context.Query) qui est sensée faire ça ?

    Ma Datagrid est bien remplie des données, ça aucun souci, mais les autres requêtes ne marchent pas.

    Il y a peut être une ligne manquante dans votre réponse ? Vu qu'il s'agit de ce que j'avais écrit en fait.

    Merci de m'aider !
    Avec un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    context.Load(context.Query).Loaded += (o, e) => listeQuery = context.TAB1.ToList();

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 16
    Par défaut
    Merci, je pense que je m'approche du but. Mais le .Loaded n'existe pas.

    Il y a un .IsComplete d'accessible, mais apparemment qui n'est jamais Completed ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
                if (context.Load(context.QUERY()).IsComplete)
                {
                    var top = context.QUERY2.ToList();
     
                    foreach (var m in top)
                    {
                        MessageBox.Show(m.title);
                    }
                }
                else
                {
                    CHARGEMENT.Text = "Chargement";
                }
    Ca me bloque complétement dans mon application, désolé de faire un peu le relou, mais la réponse doit être super simple ...

    Merci de m'aider !

  6. #6
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par vincentDec Voir le message
    Merci, je pense que je m'approche du but. Mais le .Loaded n'existe pas.

    Il y a un .IsComplete d'accessible, mais apparemment qui n'est jamais Completed ...



    Ca me bloque complétement dans mon application, désolé de faire un peu le relou, mais la réponse doit être super simple ...

    Merci de m'aider !
    Ah ben oui c'est pas Loaded mais Completed.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    context.Load(context.Query).Completed += (o, e) => listeQuery = context.TAB1.ToList();

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 16
    Par défaut
    Merci de vous occuper de mon "cas"

    Je sens que je m'approche du but, mais avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var listeQuery = new List<sn_timeline>();
                context.Load(context.GetSn_timelineQuery()).Completed += (o, e) => listeQuery = context.sn_timelines.ToList();
                ContentText.Text = listeQuery.Count.ToString();
    La taille de listeQuery est de 0 .... Ma table n'est pas vide non mais ! ^^

    J'avoue ne vraiment pas comprendre, la logique devrait faire tout marcher !

    Si vous avez une piste .... Merci encore !

  8. #8
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par vincentDec Voir le message
    Merci de vous occuper de mon "cas"

    Je sens que je m'approche du but, mais avec ça :



    La taille de listeQuery est de 0 .... Ma table n'est pas vide non mais ! ^^

    J'avoue ne vraiment pas comprendre, la logique devrait faire tout marcher !

    Si vous avez une piste .... Merci encore !
    Completed c'est un event. Il est raisé quand tes données sont arrivées, il faut donc mettre ton code dans la callback (ici c'est une lambda).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var listeQuery = new List<sn_timeline>();
    context.Load(context.GetSn_timelineQuery()).Completed += (o, e) => 
    {
        listeQuery = context.sn_timelines.ToList();
        ContentText.Text = listeQuery.Count.ToString(); 
    };

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 16
    Par défaut
    En effet, j'avais trouvé mais j'étais tellement content que j'ai oublié de mettre Résolu.

    Un énorme énorme Merci à vous en tout cas ! Vraiment !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/07/2011, 18h05
  2. Récupérer des données d'une base sql
    Par yuyunho dans le forum C++
    Réponses: 16
    Dernier message: 27/04/2009, 16h54
  3. IMPORTANT : Récupérer des données sur une base de donnee externe
    Par _cece dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 17/10/2008, 16h57
  4. [MySQL] Récupérer des données d'une base
    Par sisssi_1 dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 18/05/2006, 15h15
  5. [Excel] Récupérer des données d'une base Access
    Par FoxDeltaSierra dans le forum Excel
    Réponses: 8
    Dernier message: 03/09/2005, 10h22

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