Service Web Annuaire

phoenixgreg Messages postés 77 Date d'inscription mardi 17 novembre 2009 Statut Membre Dernière intervention 18 août 2015 - 17 nov. 2011 à 22:16
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 - 21 nov. 2011 à 10:26
Bonsoir tout le monde,

je suis bloqué sur une syntaxe de code toute bête à vrai dire, j'ai réalisé un web service en c# qui fonctionne comme un annuaire et qui prend en compte comme base de donnée un fichier XML (WCF en gros).

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void linq_personne_Selecting_Selecting(object sender, LinqDataSourceSelectEventArgs e)
    {
        int idPersonne = 0;
        try
        {
            idPersonne = int.Parse(txt_id.Text);
        }
        catch { }

        // consulter le service d'annuaire
        wsAnnuaire.AnnuaireClient proxy = new wsAnnuaire.AnnuaireClient();
        wsAnnuaire.Personne p = proxy.GetPersonneByID(idPersonne);

        // formater le résultat pour LinqDataSource
        List<wsAnnuaire.Personne> sel = new List<wsAnnuaire.Personne>();
        sel.Add(p);
        e.Result = sel;

    }
    protected void cmd_find_Click_Click(object sender, EventArgs e)
    {
        dt_personne.DataBind();
    }
}


Donc là en tapant l'id de la personne je retrouve dans ma DetailsView son nom, prenom et sa promo.
Je cherche le moyen de taper le nom et le prenom de la personne au lieu de son id pour retrouver sa promo en fait. Sauf que je ne sais comment modifier mon code.

Déjà j'ai modifié idPersonne = int.Parse(txt_id.Text);
j'ai mis à la place string nom = string. (txt_id.Text); // que mettre entre string. et (txt_id.Text) déjà ??
et ensuite
wsAnnuaire.Personne p = proxy.GetPersonneByID(idPersonne); que mettre à la place de GetPersonneByID(idPersonne) ??

Voilà j'espère que j'ai été assez clair ^^ je compte sur vous merci !

5 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
18 nov. 2011 à 08:44
Salut,

pour ta première interrogation tu n'as pas besoin de parser txt_id.Text, car il s'agit déjà d'un string.

Pour la deuxième question, il faut simplement que ta classe AnnuaireClient contienne un fonction du type :
	public Personne GetPersonneByName(string name);

Si elle n'existe pas il faudra te la palucher.

Enfin, faire une recherche uniquement sur le nom risque de te renvoyer plusieurs enregistrement, à voir comment tu veux gérer ça.

bon dev
0
phoenixgreg Messages postés 77 Date d'inscription mardi 17 novembre 2009 Statut Membre Dernière intervention 18 août 2015
18 nov. 2011 à 21:19
Ok, je vais essayer ça de suite merci !
0
phoenixgreg Messages postés 77 Date d'inscription mardi 17 novembre 2009 Statut Membre Dernière intervention 18 août 2015
18 nov. 2011 à 23:27
Donc si j'ai bien compris j'ai remplacer idPersonne = int.Parse(txt_id.Text); par
nom = txt_id.Text; c'est bien ça ?
0
phoenixgreg Messages postés 77 Date d'inscription mardi 17 novembre 2009 Statut Membre Dernière intervention 18 août 2015
20 nov. 2011 à 12:18
Ok ça marche merci jopop ;).
Par contre j'ai redémarrez mon visual studio le lendemain et là il me met une erreure lors du débogage à cette ligne :

 wsAnnuaire.Personne p = proxy.GetPersonneByName(nomprenom);


l'erreure : l'exception CommunicationException n'a pas été gérée par le code utilisateur.
Pourquoi un jour ça fonctionne et un autre pas ?! ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
21 nov. 2011 à 10:26
Salut,

des fois la compilations des assemblies éparses donnent des trucs qui marchent alors que ça ne devrait pas compiler, j'ai pas plus de précision là-dessus, désolé.

Sinon mets un point try/catch autour de la ligne générant une erreur et regarde le message de l'exception pour plus de détail.
0
Rejoignez-nous