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

Windows Phone .NET Discussion :

Récuperation de resultat de la requete select d'une bdd mysql via un webservice avec windows phone c# [Windows Phone 7]


Sujet :

Windows Phone .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 20
    Par défaut Récuperation de resultat de la requete select d'une bdd mysql via un webservice avec windows phone c#
    Bonsoir,
    Alors là je cherche dans mon app mobile réalisée sous windows phone avec c# , récuperer le resultat de ma requete select . alors j'ai créé un webservice par WCF et voilà on detail ce que j'ai fais:

    Dans le fichier IService.cs je défini ma fonction "SelectSociete()" de selection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [OperationContract]
            string SelectSociete();

    et puis dans le IService.svc.cs j'écrit le code de ma fonction comme suit:

    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
    31
     
      public string SelectSociete()
            {
                //Object MysqlConnection
                MySqlConnection connection;
                string server;
                string database;
                string uid;
                string password;
                //Paramétre de la base
                server = "localhost";
                database = "gare_tetouan";
                uid = "root";
                password = "";
                //String
                string connectionString;
                connectionString = "SERVER=" + server + ";" + "DATABASE=" +
                database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
                connection = new MySqlConnection(connectionString);
                //Ouverture de la connection
                connection.Open();
                //Préparation de la requete
                string query = "SELECT nom_societe FROM `societe`";
                MySqlCommand cmd = new MySqlCommand(query, connection);
                //Exécution de la requette
                String nom=(String)cmd.ExecuteScalar();
                //fermeture de la connection
                connection.Close();
                //TEST de retour
                return nom;
            }
    ensuite je vais remplire un combobox (ou une ListPicker)de ce qu'on va recuperer comme resultat de notre requete select, dans ma page accueil.xaml.cs où j'aurai mon combo et dans l'evenement du load de l'application

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
            {
               ServiceConsum.Service1Client client = new ServiceConsum.Service1Client();
                ComboBox1.Items.Add(client.SelectSocieteAsync());
     
            }



    Surement j'ai des erreurs
    mais lesquel et que dois je faire

    SOS tout aide sera utile : doc ou guide ou tutorial ou idée tout peut me servire

    et Merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2008
    Messages : 242
    Par défaut
    Bonjour,

    Premièrement,
    Lors d'appelle à une base de donnée/service wcf (pour vous, les deux), on utilise toujours ce format:
    1. Try
    2. Open connexion
    3. Execute Query
    4. Catch Exception
    5. Finally close connexion


    Deuxièmement, Est-ce que "client.SelectSocieteAsync()" renvoit bien quelque chose?

    Troisièmement, utilisez le MvvM car l'ajout dans l'UI est asynchrone.

    Un petit tuto ici

    Cordialement,

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 20
    Par défaut
    Merci Beaucoup pour votre réponse
    Mais dans mon cas ma base de données est une base mysql donc je ne sais pas si ce tuto que vous m'avez envoyé marchera pour mon cas aussi, sinon voilà le tuto sur lequel je me suis basée :
    http://elmagnif.wordpress.com/2012/0...windows-phone/

    pour ma fonction je l'avais changé pour remplir une list par ce que je récupère de ma base et voilà mon code :
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    public List<string> SelectSociete(List<string> nom)
    {
     
    nom = new List<string>();
    //Object MysqlConnection
    MySqlConnection connection;
    string server;
    string database;
    string uid;
    string password;
     
    server = "localhost";
    database = "gare_tetouan";
    uid = "root";
    password = "";
     
    string connectionString;
    connectionString = "SERVER=" + server + ";" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
    connection = new MySqlConnection(connectionString);
     
    connection.Open();
     
    string query = "SELECT nom_societe FROM 'societe'";
    MySqlCommand cmd = new MySqlCommand(query, connection);
    cmd.ExecuteNonQuery();
    MySqlDataReader reader = cmd.ExecuteReader();
     
    while (reader.Read()) 
    {
    nom.Add(reader["nom_societe"].ToString());
     
    }
     
    reader.Close();
    connection.Close();
     
    return nom;
     
    }
    cette fonction retourne bien une liste de mes enregistrements de BDD , ça je le sais par le teste de client du webservice

    et puis dans mon app mobile dans l'action du load je passe une list comme parametre de ma fonction pour qu'elle sera remplis par ce que ma fonction retourn, pour remplir par la suite une listpicker par cette list , voilà mon code:

    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
    private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
    {
    try
    {
     
    ServiceConsum.Service1Client client = new ServiceConsum.Service1Client();
    client.SelectSocieteAsync(list);
    this.listpicker.ItemsSource = list;
     
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    }
    Mon code me semble parfait et correcte !!! j'ai dis bien me semble
    Mais ça ne marche pas comme il faut et ma liste ne se rempli pas !!!
    j'ignore pourquoi et comment faire ???

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Par défaut
    Salut,

    Ton code ma l'air correct cependant tu ne récupère pas les données de la bonne façon.

    il faut que tu implémente l'événement " client.SelectSocieteCompleted " dans ta classe Service1Client puisque le traitement ce fait de façon asynchrone.

    Voici un exemple :
    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
     
    public void LoadArticles(Guid idTitle)
            {
                ConstitutionClient client = new ConstitutionService.ConstitutionClient();
                client.GetArticlesAsync(idTitle);
                client.GetArticlesCompleted += new EventHandler<GetArticlesCompletedEventArgs>(client_GetArticlesCompleted);
                client.CloseAsync();
            }
     
            void client_GetArticlesCompleted(object sender, GetArticlesCompletedEventArgs e)
            {
                if (e.Error == null)
                {
                    if (e.Result != null)
                    {
                        OnDownloadFinished();
                        Articles = e.Result;
                        ArticlesDownloaded = true;
                    }
                }
            }

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2008
    Messages : 242
    Par défaut
    Pourquoi codez-vous dans la méthode "PhoneApplicationPage_Loaded" et pas dans le code behind d'une page?

  6. #6
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 20
    Par défaut
    Merci Younes en fait oui j'ai deja utiliser l'evenement completed et pourtant ça marche pas, de toute façon cet evenement permet de faire un traitement après avoir executé le service c'est tout donc en tt cas ça n'a pas d'influance sur mon code je crois

    Mais soit que j l'utilise ou pas ca ne marche paaaaaas

  7. #7
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 20
    Par défaut
    Maf77 merci pour ta reponse en tt cas soit dans le load ou le constructeur ou dans une bouton mem (juste pour teste) ça doit marché alors que Rien ne marche !! j risque de perdre ma tete mon code me semble correeecte Mais qu'il ne marche pas

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/09/2011, 16h06
  2. [Oracle] probleme d'affichage des resultats de la requete select
    Par gigabit32 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/06/2011, 17h22
  3. [MySQL] requete SELECT retournant une seule ligne
    Par hermann.geiger dans le forum SGBD
    Réponses: 12
    Dernier message: 19/09/2008, 08h34
  4. aide requete select d'une table dans une autre table
    Par alexkickstand dans le forum VBA Access
    Réponses: 1
    Dernier message: 24/10/2007, 22h09
  5. requete select dans une text box
    Par galaad666 dans le forum IHM
    Réponses: 5
    Dernier message: 29/11/2006, 13h55

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