OVH Cloud OVH Cloud

WebService

2 réponses
Avatar
Fr
Je viens de créer un web service (c'est une première que je souhaite appeler
dans une page asp.net)
Il est censé me fournir les element commencant par <prefixText> depuis un
select dans une table

Ex: <prefixText>="r" me retournera "Rue","Ruelle","Route'" etc ...

Quand j'appel la page .asmx dans un navigateur il me propose bien de saisir
2 parametres, mais quand je clique sur le bouton Invoke j'obtiens une "Page
non trouvée"

Je me suis inspiré de MixDemo touvé sur
http://atlas.asp.net/default.aspx?tabid=47&subtabid=471

Peut-être l'ai-je mal adapté en VB ?

Mon Web.config à l'air OK en ce qui concerne les webservice

Voici le code de la page ListeTypeVoie.asmx

<%@ WebService Language="VB" Class="ListeTypeVoie" %>

Imports System
Imports System.IO
Imports System.Web
Imports System.Collections
Imports System.Collections.Generic
Imports System.Threading
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Xml.Serialization
Imports System.Data
Imports System.Data.Sql
Imports System.Data.SqlClient


<WebService(Namespace := "http://tempuri.org/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
Public Class ListeTypeVoie
Inherits System.Web.Services.WebService
'Private Shared autoCompleteWordList As String()

<WebMethod()> _
Public Function GetAllVoie(ByVal prefixText As String, ByVal count As
Integer) As String()

'creation de la chaine de connexion et de la requete à executer
Dim strConnTxt As String = "Data Source=SERVEUR3;Initial
Catalog=GESTION;User ID=comptable;Password=sonpassword"
Dim strSql As String = "SELECT LIBELLE FROM vLISTE_VOIE_ABREGE ORDER
BY [LIBELLE]"

'Creation et ouverture de la connection
Dim objConn As SqlConnection = New SqlConnection(strConnTxt)
objConn.Open()

'Creation de la commande
Dim objCmd As SqlCommand = New SqlCommand(strSql, objConn)
objCmd.CommandType = CommandType.Text

Dim reader As SqlDataReader = objCmd.ExecuteReader
prefixText = prefixText.ToLower
Dim suggestions As New List(Of String)

While reader.Read
Dim s As String = reader.GetString(0).ToLower
If s.StartsWith(prefixText) Then
suggestions.Add(s)
End If

End While

'fermeture connection
objConn.Close()
Return suggestions.ToArray
End Function

End Class


merci d'avance


--
Fr@ncky

2 réponses

Avatar
Patrick Philippot
Bonjour,

Commençons par le commencement: avez-vous essayé de déboguer pour au moins
voir si Invoke provoquait l'appel de votre méthode? Et si oui, constater à
quel endroit le code plante? Nous saurions déjà si c'est un problème de code
ou de communication.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr


"" wrote in message
news:
Je viens de créer un web service (c'est une première que je souhaite
appeler dans une page asp.net)
Il est censé me fournir les element commencant par <prefixText> depuis un
select dans une table

Ex: <prefixText>="r" me retournera "Rue","Ruelle","Route'" etc ...

Quand j'appel la page .asmx dans un navigateur il me propose bien de
saisir 2 parametres, mais quand je clique sur le bouton Invoke j'obtiens
une "Page non trouvée"

Je me suis inspiré de MixDemo touvé sur
http://atlas.asp.net/default.aspx?tabidG&subtabidG1

Peut-être l'ai-je mal adapté en VB ?

Mon Web.config à l'air OK en ce qui concerne les webservice

Voici le code de la page ListeTypeVoie.asmx

<%@ WebService Language="VB" Class="ListeTypeVoie" %>

Imports System
Imports System.IO
Imports System.Web
Imports System.Collections
Imports System.Collections.Generic
Imports System.Threading
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Xml.Serialization
Imports System.Data
Imports System.Data.Sql
Imports System.Data.SqlClient


<WebService(Namespace := "http://tempuri.org/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
Public Class ListeTypeVoie
Inherits System.Web.Services.WebService
'Private Shared autoCompleteWordList As String()

<WebMethod()> _
Public Function GetAllVoie(ByVal prefixText As String, ByVal count As
Integer) As String()

'creation de la chaine de connexion et de la requete à executer
Dim strConnTxt As String = "Data Source=SERVEUR3;Initial
Catalog=GESTION;User ID=comptable;Password=sonpassword"
Dim strSql As String = "SELECT LIBELLE FROM vLISTE_VOIE_ABREGE
ORDER BY [LIBELLE]"

'Creation et ouverture de la connection
Dim objConn As SqlConnection = New SqlConnection(strConnTxt)
objConn.Open()

'Creation de la commande
Dim objCmd As SqlCommand = New SqlCommand(strSql, objConn)
objCmd.CommandType = CommandType.Text

Dim reader As SqlDataReader = objCmd.ExecuteReader
prefixText = prefixText.ToLower
Dim suggestions As New List(Of String)

While reader.Read
Dim s As String = reader.GetString(0).ToLower
If s.StartsWith(prefixText) Then
suggestions.Add(s)
End If

End While

'fermeture connection
objConn.Close()
Return suggestions.ToArray
End Function

End Class


merci d'avance


--




Avatar
Fr
Bonjour,
Merci de votre réponse,

Je viens de trouver le pourquoi du comment ... j'allais faire un POST

En fait, la première ligne retournée par le Select est NULL, en mettant un
petit ISNULL(LIBELLE,'') ça va beaucoup mieux
Je ne pensait pas qu'un NULL en prmière ligne pouvait faire planté comme ça.
:-(



"Patrick Philippot" a écrit dans le
message de news: evW$
Bonjour,

Commençons par le commencement: avez-vous essayé de déboguer pour au moins
voir si Invoke provoquait l'appel de votre méthode? Et si oui, constater à
quel endroit le code plante? Nous saurions déjà si c'est un problème de
code ou de communication.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr


"" wrote in message
news:
Je viens de créer un web service (c'est une première que je souhaite
appeler dans une page asp.net)
Il est censé me fournir les element commencant par <prefixText> depuis un
select dans une table

Ex: <prefixText>="r" me retournera "Rue","Ruelle","Route'" etc ...

Quand j'appel la page .asmx dans un navigateur il me propose bien de
saisir 2 parametres, mais quand je clique sur le bouton Invoke j'obtiens
une "Page non trouvée"

Je me suis inspiré de MixDemo touvé sur
http://atlas.asp.net/default.aspx?tabidG&subtabidG1

Peut-être l'ai-je mal adapté en VB ?

Mon Web.config à l'air OK en ce qui concerne les webservice

Voici le code de la page ListeTypeVoie.asmx

<%@ WebService Language="VB" Class="ListeTypeVoie" %>

Imports System
Imports System.IO
Imports System.Web
Imports System.Collections
Imports System.Collections.Generic
Imports System.Threading
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Xml.Serialization
Imports System.Data
Imports System.Data.Sql
Imports System.Data.SqlClient


<WebService(Namespace := "http://tempuri.org/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
Public Class ListeTypeVoie
Inherits System.Web.Services.WebService
'Private Shared autoCompleteWordList As String()

<WebMethod()> _
Public Function GetAllVoie(ByVal prefixText As String, ByVal count As
Integer) As String()

'creation de la chaine de connexion et de la requete à executer
Dim strConnTxt As String = "Data Source=SERVEUR3;Initial
Catalog=GESTION;User ID=comptable;Password=sonpassword"
Dim strSql As String = "SELECT LIBELLE FROM vLISTE_VOIE_ABREGE
ORDER BY [LIBELLE]"

'Creation et ouverture de la connection
Dim objConn As SqlConnection = New SqlConnection(strConnTxt)
objConn.Open()

'Creation de la commande
Dim objCmd As SqlCommand = New SqlCommand(strSql, objConn)
objCmd.CommandType = CommandType.Text

Dim reader As SqlDataReader = objCmd.ExecuteReader
prefixText = prefixText.ToLower
Dim suggestions As New List(Of String)

While reader.Read
Dim s As String = reader.GetString(0).ToLower
If s.StartsWith(prefixText) Then
suggestions.Add(s)
End If

End While

'fermeture connection
objConn.Close()
Return suggestions.ToArray
End Function

End Class


merci d'avance


--