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

C# Discussion :

Tableau WebService C#


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2019
    Messages : 7
    Par défaut Tableau WebService C#
    Bonjour,
    Je débute en C# et en WebService :

    J'ai un tableau scolaire (en simplifiant) :
    Colonne : NOM MATIÈRE NOTE

    J'extraits tous les résultats du collège via une requête que j'ai déja fait.
    Je souhaiterais lancer un WebService en lui donnant toutes les les infos de ma requête.
    Via une liste, un tableau ou autres ... je ne sais pas justement. (c'est là ou je bloque).

    Mon WebService récupère ce "tableau, liste ou autres ..." (c'est là aussi ou je bloque).
    Qui ensuite va les trier et créer un fichier (çà c'est bon je sais faire).

    Mon Code simplifié :

    WebService :
    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
    public string college(string nom, string matiere, string note) //Je ne veux pas ça mais le remplacer par un tableau ou liste
     
    ecole ma_liste = new ecole();
    foreach (ecole ech in ma_liste)
    {
    //Ecriture dans Fichier :
    streamWriter.WriteLine(ColALig1); // De mon tableau
    streamWriter.WriteLine(ColALig2);
    streamWriter.WriteLine(ColALig3);
    streamWriter.WriteLine(ColBLig1);
    streamWriter.WriteLine(ColBLig2);
    streamWriter.WriteLine(ColBLig3);
    //...etc...
    }
    Return "Fichier créé";
    }
    Coté Client :
    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
    private void button1_Click(object sender, System.EventArgs e)
    {
    //Je lance ma requête
    using (reader = cmd.ExecuteReader())
    {
    //
    while (reader.Read())
    {
    //Je lis ma requête et souhaiterais l'inclure dans un tableau, ou liste ex : 
    maListe.Add("NOM");
    maListe.Add("MATIERE");
    maListe.Add("NOTE");
    }
    }
    //Enfin je lace mon Webservice : 
    var test = new ServiceReference1.WebService_FicsSoapClient();
    test.college(string nom, string matiere, string note) //Je ne veux pas ça mais le remplacer par un tableau ou liste
    }
    J'espère que je suis assez clair.

    Merci pour votre aide n'hesitez pas à me poser des questions.

    Cordialement.

    Manu.

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 964
    Par défaut
    L'utilisation d'un web service requiert l'installation d'outils tels que IIS, nécessitera de le configurer correctement puis d'y déployer le fameux web service.
    Et tout ça juste pour écrire dans un fichier ? N'est-ce pas un peu trop ?

    Si tu en as la possibilité, je te suggère de laisser le service s'occuper de récupérer les données dans la base de données.
    Ou sinon de créer ce fichier coté client et d'en faire l'upload avec le service.

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    Citation Envoyé par popo Voir le message
    L'utilisation d'un web service requiert l'installation d'outils tels que IIS
    pas forcément
    WCF en hébergement manuel c'est quelques lignes de code au début du programme
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2019
    Messages : 7
    Par défaut
    Merci pour vos réponses.
    En fait je n'ai pas le choix on m'a demandé de pratiquer ainsi.
    Mon WebService fonctionne et la partie client aussi mais je n'envoi que 3 champs : NOM MATIERE et NOTE ...en fait qu'une seule ligne avec 3 champs.
    Je souhaiterais plutôt envoyer un tableau ou liste à mon WebService si jamais vous avez des propositions ?
    Merci.

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    faire une classe avec 3 propriétés et modifier la méthode de service pour qu'elle transmette un List<LaClasse>
    List est une collection, il y a plusieurs types de collections dans le Framework, List est un équivalent d'un tableau en plus pratique (.add, .remove, lelist[index] pour lecture/écriture directe, .contains etc...)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2019
    Messages : 7
    Par défaut
    Merci bien voici ce que j'ai fait coté client : j'ai créé ma classe : mycollege :

    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
                    mycollege col = new mycollege();
                    col.nom = "manu";
                    col.matiere = "math";
                    col.note = 7;
     
                    mycollege col1 = new mycollege();
                    col1.nom = "fred";
                    col1.matiere = "francais";
                    col1.note = 13;
     
                    List<mycollege> mylistCollege = new List<mycollege>();
                    mylistCollege.Add(col);
                    mylistCollege.Add(col1);
     
                    var test = new ServiceReference3.WebService_FicsSoapClient();
                        test.college(mylistCollege);
    C'est la dernière ligne qui ne fonctionne pas je ne sais pas comment transmettre ma liste "mycollege" au webservice "college".

    Ensuite coté Webservice j'ai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            [WebMethod]
            public string college(List<string> MyList)
            {
                string nom1 = MyList[1];
                string matiere1 = MyList[1];
                string note1 = MyList[1];
                Return "OK"
            }
    merci pour votre aide

  7. #7
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    déjà les index commencent à 0

    ensuite si tu envois une liste généralement c'est que tu ne sais pas combien elle fait de long
    donc c'est un foreach qu'il faut faire côté serveur

    "ne fonctionne pas" il faut définir, y a t il un message d'erreur etc...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2019
    Messages : 7
    Par défaut
    Merci,
    ok pour les index et le ForEach.

    Pour le message d’erreur :
    Erreur CS1503 Argument 1*: conversion impossible de 'System.Collections.Generic.List<TestLanceServiceWeb.Form1.mycollege>' en 'TestLanceServiceWeb.ServiceReference3.ArrayOfString' TestLanceServiceWeb
    Sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test.college(mylistCollege);
    avec mylistCollege qui pose pb

    Merci.

  9. #9
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    ah oui j'avais pas vu

    public string college(List<string> MyList)
    à transformer en public string college(List<mycollege> MyList)

    quand on envoie un type on doit recevoir le même type de l'autre côté
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2019
    Messages : 7
    Par défaut
    Bonjour encore moi .. je dois louper quelque chose message d'erreur désormais :
    Erreur CS1503 Argument 1*: conversion impossible de 'System.Collections.Generic.List<TestLanceServiceWeb.Form1.mycollege>' en 'TestLanceServiceWeb.ServiceReference3.ArrayOfMycollege' TestLanceServiceWeb
    Quand j'ajoute mon service je ne choisis peut être pas la bonne collection ?
    je choisis : systeme.collections.generic.List

  11. #11
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    Ça ne change pas grand chose je pense, array ou list c'est juste pour le transport je crois.
    Mais il faut que le type soit le même de chaque côté la il dit que le type contenu dans le tableau n'est pas le même.
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  12. #12
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2019
    Messages : 7
    Par défaut
    Merci pour les réponses ca avance.

    j'ai en webservice :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
           [WebMethod]
            public List<mycollege> mylistCollege()
    et en client je le lance ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                    List<mycollege> mylistCollege2 = new List<mycollege>();
                    mylistCollege2.Add(col);
                    mylistCollege2.Add(col1);
                    var test = new ServiceReference3.WebService_FicsSoapClient();
                    test.mylistCollege();
    Ca ne bug plus mais je n'arrive pas coté webservice à récupérer mon tableau mylistCollege :
    je fais mylistCollege. mais ca ne me propose rien ...

    Merci

  13. #13
    Membre Expert
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 940
    Par défaut
    Je ne sais pas exactement ce que tu essaies de faire et je ne suis pas sûr que le saches toi-même. Ou doit-être utilisé ton web service ? depuis internet ? en interne ? Quel type de client ? navigateur web ? client lourd ? Comment sera-t-il instancié ? avec IIS ? en tant que service Windows ?

    Personnellement je te suggère de regarder ce qui se fait avec .Net Core et les API REST (tutoriel), ça offre pas mal de souplesse et c'est vraiment plaisant à utiliser.

  14. #14
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    api rest ou wcf ne change pas le problème, il ne comprend pas trop les bases de c#


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public List<mycollege> mylistCollege()
    List<mycollege> veut dire qui retourne une collection de mycollege
    () veut dire aucun paramètres

    or toi tu veux retourner rien (void) (le mieux c'est au minimum un booléen pour dire si ca a bien été traité) et fournir la collection en paramètre
    soit public void mylistCollege(List<mycollege> collegeList)et côté client ca donne test.mylistCollege(mylistCollege2 );côté serveur tu peux ensuite faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach (var college in collegeList)
    {
     // traitement sur la variable college
    }
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. Tableau WebService C#
    Par emmanuel17000 dans le forum Services Web
    Réponses: 1
    Dernier message: 20/02/2019, 09h49
  2. [Web Service][SOAP] webservice : retour d'un tableau au client
    Par Florent08800 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 05/05/2012, 13h54
  3. Delphi 6.0 Consommer WebService Axis Parcourir Tableau de retour
    Par STARIS79 dans le forum Web & réseau
    Réponses: 0
    Dernier message: 03/08/2007, 09h40
  4. [MySQL] Passer les résultats d'une requête dans un tableau 2D pour un webservice ?
    Par tintin72 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/06/2007, 01h36
  5. [VBA-E] Définition d'un tableau avec lien WebService
    Par Carrel dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/05/2006, 16h31

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