Retourner plusieures variables webservice

Résolu
bobertin89 Messages postés 38 Date d'inscription mercredi 14 avril 2010 Statut Membre Dernière intervention 2 septembre 2011 - 3 févr. 2011 à 13:24
bobertin89 Messages postés 38 Date d'inscription mercredi 14 avril 2010 Statut Membre Dernière intervention 2 septembre 2011 - 4 févr. 2011 à 11:57
Bonjour à tous,
débutant en .net, je souhaite créer un webservices retournant plusieures variables.
Je suis dans visual studio (en vb).
Dans l'exemple ci-dessous, je voudrais que le service renvoi le nom et le prenom dans deux variables différentes ou dans un tableau...mais je n'y arrive pas...
 <System.Web.Services.WebMethod()>
    Public Function connexion(ByVal login As String, ByVal pass As String) As String
        Dim retour As String
        Dim cnx As New SqlConnection
        cnx = New SqlConnection(ConfigurationManager.ConnectionStrings("testConnectionString").ConnectionString)
        cnx.Open()
        Dim cmd As New SqlCommand
        cmd.Connection = cnx
        cmd.CommandText = "SELECT nom, prenom FROM utilisateur WHERE login='" & login & "' AND pass='" & pass & "'"
        Dim dr As SqlDataReader
        dr = cmd.ExecuteReader
        If dr.HasRows Then
            dr.Read()
            retour = "vous etes : " & dr.Item("nom").ToString
        Else
            retour = "saisie incorrecte"
        End If
        Return retour

    End Function

Merci d'avance pour le coup de patte...

5 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
4 févr. 2011 à 11:24
Voila grosso modo, un code qui met en place le principe (non testé)

'Dans ta methode
<System.Web.Services.WebMethod()>
    Public Function connexion(ByVal login As String, ByVal pass As String) As Personne
       
        Dim cnx As New SqlConnection
        cnx = New SqlConnection(ConfigurationManager.ConnectionStrings("testConnectionString").ConnectionString)
        cnx.Open()
        Dim cmd As New SqlCommand
        dim personne as new Personne()
        cmd.Connection = cnx
        cmd.CommandText = "SELECT nom, prenom FROM utilisateur WHERE login='" & login & "' AND pass='" & pass & "'"
        Dim dr As SqlDataReader
        dr = cmd.ExecuteReader
        If dr.HasRows Then
            dr.Read()
            personne.Nom = dr.Item("nom").ToString
            personne.Prenom = dr.Item("prenom").ToString
        Else
            retour.Nom = "saisie incorrecte"
        End If
        Return personne

    End Function

'dans une classe du meme namspace
Public Class Personne

    Private _Nom As String
    Private _Prenom As String


#Region "Liste Propriétés de la Classe"
    Public Property Nom() As String
        Get
            Return _Nom
        End Get
        Set(ByVal Value As String)
            _Nom = Value
        End Set
    End Property

    Public Property Nom() As String
        Get
            Return _Prenom 
        End Get
        Set(ByVal Value As String)
            _Prenom = Value
        End Set
    End Property

3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
4 févr. 2011 à 10:28
Salut,

Il faut retourner une classe

Public Function connexion(ByVal login As String, ByVal pass As String) As Personne

et le tour est joué.
0
bobertin89 Messages postés 38 Date d'inscription mercredi 14 avril 2010 Statut Membre Dernière intervention 2 septembre 2011
4 févr. 2011 à 11:16
Salut nhervagault,
d'abord merci pour ta réponse mais je ne vois pas bien comment m'y prendre (je débute vraiment en .net, je ne faisais que du php assez simple pour des petits site)...
Pourrais-tu me mettre un petit exemple de la classe personne (un truc vite fait pour comprendre le principe...)stp?

Merci d'avance
0
bobertin89 Messages postés 38 Date d'inscription mercredi 14 avril 2010 Statut Membre Dernière intervention 2 septembre 2011
4 févr. 2011 à 11:43
Merci beaucoup!!!
Je regarde ça cet AM!
0

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

Posez votre question
bobertin89 Messages postés 38 Date d'inscription mercredi 14 avril 2010 Statut Membre Dernière intervention 2 septembre 2011
4 févr. 2011 à 11:57
Je viens de tester et c'est nikel(en réadaptant un peu).
Mille merci nhervagault!!!
0
Rejoignez-nous