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

Services Web Discussion :

problème de résultat d'un web service


Sujet :

Services Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2011
    Messages : 104
    Par défaut problème de résultat d'un web service
    Bonjour

    SVP je suis entrain de développer un web service avec ASP.net et Entity Framwork, j'ai besoin de récupérer le résultat d'une requête qui retourne plusieurs lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     public class Resume : System.Web.Services.WebService
        {
            public ServiceEmarket.Model.extnet_dbEntities _context = new Model.extnet_dbEntities();
            [WebMethod]
            public string HelloWorld(string mne)
            {
                var d = _context.resume.Where(c=> c.mne_r == "MNP");
     
     
                return d.ToString();
            }
        }
    lorsque j'ai exécute mon code je reçoit le résultat ci dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <string>System.Data.Objects.ObjectQuery`1[System.String]</string>
    Merci pour Votre aide.

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Ton code a été écrit pour renvoyer un seul élément et non une liste d'éléments.

    Je vais supposer que tu cherches à récupérer une liste de d'objets de type String (List<string>).

    - Tu dois la déclarer ta méthode comme suit :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    public List<string> HelloWorld(string mne)

    - Lorsque tu exécutes la requête avec ce bout de code :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    var d = _context.resume.Where(c=> c.mne_r == "MNP");
    la variable d contient bien ton résultat sur plusieurs lignes. Pour retourner le résultat, tu peux donc faire (en découpant) :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public List<string> HelloWorld(string mne)
    {
        var d = _context.resume.Where(c => c.mne_r == "MNP");
     
        return d.ToList();
    }

    ou mieux, directement :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public List<string> HelloWorld(string mne)
    {
        return _context.resume.Where(c => c.mne_r == "MNP").ToList();
    }
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2011
    Messages : 104
    Par défaut
    Merci pour votre aide, jai essai de faire ce vous m'avez dit mai je reçoit l'erreur ci dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Error	1	Cannot implicitly convert type 'System.Collections.Generic.List<ServiceEmarket.Model.resume>' to 'System.Collections.Generic.List<string>'	F:\DOC-AYMEN\TRAVAIL 2012\DEV\MVC3\ServiceEmarket\ServiceEmarket\Resume.asmx.cs	27	20	ServiceEmarket
    Merci,

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    C'est normal car le résultat de ta requête est constitué d'objets de type "resume", et non de type "string".

    Dans ton cas, il faut que tu remplaces :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    public List<string> HelloWorld(string mne)
    Par ceci :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    public List<ServiceEmarket.Model.resume> HelloWorld(string mne)
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2011
    Messages : 104
    Par défaut
    je suis désolé, je suis encore débutant en .net mais après la modification et l'exécution de mon service web je reçoit ces erreurs :

    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
     
    System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.
       à MySql.Data.MySqlClient.MySqlClientFactory.get_MySqlDbProviderServicesInstance()
       à MySql.Data.MySqlClient.MySqlClientFactory.System.IServiceProvider.GetService(Type serviceType)
       à System.Data.Common.DbProviderServices.GetProviderServices(DbProviderFactory factory)
       à System.Data.Metadata.Edm.StoreItemCollection.Loader.InitializeProviderManifest(Action`3 addError)
       à System.Data.Metadata.Edm.StoreItemCollection.Loader.OnProviderManifestTokenNotification(String token, Action`3 addError)
       à System.Data.EntityModel.SchemaObjectModel.Schema.HandleProviderManifestTokenAttribute(XmlReader reader)
       à System.Data.EntityModel.SchemaObjectModel.Schema.HandleAttribute(XmlReader reader)
       à System.Data.EntityModel.SchemaObjectModel.SchemaElement.ParseAttribute(XmlReader reader)
       à System.Data.EntityModel.SchemaObjectModel.SchemaElement.Parse(XmlReader reader)
       à System.Data.EntityModel.SchemaObjectModel.Schema.HandleTopLevelSchemaElement(XmlReader reader)
       à System.Data.EntityModel.SchemaObjectModel.Schema.InternalParse(XmlReader sourceReader, String sourceLocation)
       à System.Data.EntityModel.SchemaObjectModel.Schema.Parse(XmlReader sourceReader, String sourceLocation)
       à System.Data.EntityModel.SchemaObjectModel.SchemaManager.ParseAndValidate(IEnumerable`1 xmlReaders, IEnumerable`1 sourceFilePaths, SchemaDataModelOption dataModel, AttributeValueNotification providerNotification, AttributeValueNotification providerManifestTokenNotification, ProviderManifestNeeded providerManifestNeeded, IList`1& schemaCollection)
       à System.Data.Metadata.Edm.StoreItemCollection.Loader.LoadItems(IEnumerable`1 xmlReaders, IEnumerable`1 sourceFilePaths)
       à System.Data.Metadata.Edm.StoreItemCollection.Init(IEnumerable`1 xmlReaders, IEnumerable`1 filePaths, Boolean throwOnError, DbProviderManifest& providerManifest, DbProviderFactory& providerFactory, Memoizer`2& cachedCTypeFunction)
       à System.Data.Metadata.Edm.StoreItemCollection..ctor(IEnumerable`1 xmlReaders, IEnumerable`1 filePaths)
       à System.Data.Metadata.Edm.MetadataCache.StoreMetadataEntry.LoadStoreCollection(EdmItemCollection edmItemCollection, MetadataArtifactLoader loader)
       à System.Data.Metadata.Edm.MetadataCache.StoreItemCollectionLoader.LoadItemCollection(StoreMetadataEntry entry)
       à System.Data.Metadata.Edm.MetadataCache.LoadItemCollection[T](IItemCollectionLoader`1 itemCollectionLoader, T entry)
       à System.Data.Metadata.Edm.MetadataCache.GetOrCreateStoreAndMappingItemCollections(String cacheKey, MetadataArtifactLoader loader, EdmItemCollection edmItemCollection, Object& entryToken)
       à System.Data.EntityClient.EntityConnection.LoadStoreItemCollections(MetadataWorkspace workspace, DbConnection storeConnection, DbProviderFactory factory, DbConnectionOptions connectionOptions, EdmItemCollection edmItemCollection, MetadataArtifactLoader artifactLoader)
       à System.Data.EntityClient.EntityConnection.GetMetadataWorkspace(Boolean initializeAllCollections)
       à System.Data.EntityClient.EntityConnection.InitializeMetadata(DbConnection newConnection, DbConnection originalConnection, Boolean closeOriginalConnectionOnFailure)
       à System.Data.EntityClient.EntityConnection.Open()
       à System.Data.Objects.ObjectContext.EnsureConnection()
       à System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
       à System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()
       à System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
       à System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
       à ServiceEmarket.Resume.HelloWorld() dans F:\DOC-AYMEN\TRAVAIL 2012\DEV\MVC3\ServiceEmarket\ServiceEmarket\Resume.asmx.cs:ligne 28
    Merci

  6. #6
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Est-ce que ça change quelque chose si tu utilises ce qui suit ?

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public IEnumerable<ServiceEmarket.Model.resume> HelloWorld(string mne)
    {
        return _context.resume.Where(c => c.mne_r == "MNP");
    }

    Si ça ne change rien, peux-tu poster la ligne 28 de ton fichier F:\DOC-AYMEN\TRAVAIL 2012\DEV\MVC3\ServiceEmarket\ServiceEmarket\Resume.asmx.cs ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

Discussions similaires

  1. résultat d'un web service
    Par sydius dans le forum Services Web
    Réponses: 5
    Dernier message: 01/07/2008, 13h58
  2. probléme d'utilisation d'un web service
    Par distordz dans le forum Flex
    Réponses: 1
    Dernier message: 30/06/2008, 20h32
  3. Réponses: 2
    Dernier message: 26/09/2006, 08h56
  4. Problème de libération de DLL - Web Service
    Par Laurent_75000 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 18/05/2006, 13h25
  5. [Système] Problème d'exécution d'un Web Service
    Par kheiro dans le forum Langage
    Réponses: 2
    Dernier message: 11/05/2006, 14h26

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