Retourner plusieures variables webservice [Résolu]

Signaler
Messages postés
38
Date d'inscription
mercredi 14 avril 2010
Statut
Membre
Dernière intervention
2 septembre 2011
-
Messages postés
38
Date d'inscription
mercredi 14 avril 2010
Statut
Membre
Dernière intervention
2 septembre 2011
-
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

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
27
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

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
27
Salut,

Il faut retourner une classe

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

et le tour est joué.
Messages postés
38
Date d'inscription
mercredi 14 avril 2010
Statut
Membre
Dernière intervention
2 septembre 2011

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
Messages postés
38
Date d'inscription
mercredi 14 avril 2010
Statut
Membre
Dernière intervention
2 septembre 2011

Merci beaucoup!!!
Je regarde ça cet AM!
Messages postés
38
Date d'inscription
mercredi 14 avril 2010
Statut
Membre
Dernière intervention
2 septembre 2011

Je viens de tester et c'est nikel(en réadaptant un peu).
Mille merci nhervagault!!!