Jump to content

Recommended Posts

Posted

Bom dia

è o seguinte eu tenho uma gridview com hyperlink ----> werservice1.asmx?id=1234

eu queria agora é que dentro do wersevice colocasse o id numa variavel em que ficava tipo x=1234. Já tentei com

x = Request.QueryString["id"]

mas dá erros:

Error 13 Identifier expected. C:\Documents and Settings\teste\Os meus documentos\Visual Studio 2008\Projects\WebApplication3\WebApplication3\WebService1.asmx.vb

Error 12 Name 'Request' is not declared. C:\Documents and Settings\teste\Os meus documentos\Visual Studio 2008\Projects\WebApplication3\WebApplication3\WebService1.asmx.vb

  • Replies 65
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted

É o seguinte eu tenho um hyperlink numa gridview para apanhar o id correspondente à linha e depois quero apartir desse hyperlink chamar o webservice para ele executar umas querys à base dados...mas para isso preciso do id para completar as querys.... já coloquei

HttpContext.Current.Request.QueryString("id")

mas o id vem vazio....

Desde já obrigado

Posted

Desculpa mas não entendi a tua questão....

Eu criei um web service nao visual studio e pretendo que ao clicar no link que o web service verifique se existe informação em anexos referente ao id em questão. Caso sim mostra o pdf caso não vai actualizar a base dados indo a uma outra bd buscar a informação em falta....

Posted

Qual é a extensão?

Para o que pretendes tem de ser um asmx e para ires buscar o valor tens de indicar o caminho completo

Context.Request.QueryString("ID")

Pedro Martins

Não respondo a duvidas por PM

Posted

a Minha url depois de clicar no link fica

http://localhost:3072/WebService1.asmx?id=492430

Só que acho que o problema de depois ele apresentar um id vazio é que no link acima aparece a pagina do webservice com o nome que dei a (<WebMethod()> _

    Public Function nleitura() As String) nleitura em jeito de link e quando clico fica o hyperlink

http://localhost:3072/WebService1.asmx?op=nleitura

Depois clico no invoke (localhost:3072/WebService1.asmx/nleitura)  e ai aparece o id vazio....

Acho que o problema é por aqui, aparecerem estas paginas pelo meio, mas também não sei como as retirar....

Posted

Eu já coloquei como httpget, mas o id continua a aparecer vazio na altura de execução da query!

Quanto à outra questão de gerar um cliente proxy na página da grid, não sei como fazê-lo....

:bored:

Posted

Agora não vais utilizar o QueryString, mas sim um parâmetro, altera a tua função para

Public Function nleitura(ByVal ID as Integer) As String

e em vez de ires buscar o valor do ID ao QueryString, vais buscar a variável ID

Pedro Martins

Não respondo a duvidas por PM

Posted

Tenho o seguinte código agora:

<WebMethod()> _
    <ScriptMethod(UseHttpGet:=True)> _
    <ScriptMethod(UseHttpPost:=True)> _
    'Public Function nleitura() As String
    Public Function nleitura(ByVal id As Integer) As String
        Dim conne As String
        'Dim x As String
        'x = HttpContext.Current.Request.QueryString("id")
        'x = Context.Request.QueryString("id")
       
        Dim nleitura1 As String
        Dim nleiturat As String
        conne = "Data Source=localhost;Initial Catalog=DC;Integrated Security=True"
        Dim conn As New SqlConnection
        Dim comand As New SqlCommand
        conn.ConnectionString = conne
        conn.Open()
        comand.Connection = conn
        comand.CommandText = "SELECT ident FROM ps WHERE (ident = '" & id & "')"


        nleitura = comand.ExecuteScalar

Mas continua sem funcionar está alguma coisa errada???

Posted

Está a dar erro? Que link estás a utilizar para a chamar?

Deves trocar esta linha

nleitura = comand.ExecuteScalar

por esta

Return comand.ExecuteScalar

Pedro Martins

Não respondo a duvidas por PM

Posted

Eu logo a seguir ao trecho de código que coloquei tenho

If nleitura Is Nothing OrElse IsDBNull(nleitura) Then
            Return "Erro nº processo '" & id & "'"
        Else ....

E aparece assim quando clico no invoke : <string>Erro nº processo ''</string>

Posted

Esquece...

Desfaz a alteração que te disse em cima para utilizar os parâmetros em vez do QueryString, estava a ver outra coisa..

Depois disso teu link devera ser mais ou menos assim

http://localhost:3072/WebService1.asmx/nleitura?ID=492430

Pedro Martins

Não respondo a duvidas por PM

Posted

Então fica assim???

 <WebMethod()> _
    <ScriptMethod(UseHttpGet:=True)> _
    Public Function nleitura() As String
        'Public Function nleitura(ByVal id As Integer) As String
        Dim conne As String
        'Dim x As String
        'x = HttpContext.Current.Request.QueryString("id")
        x = Context.Request.QueryString("id")
Posted
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
Imports System.Data.SqlClient
Imports System.Web.Script.Services

' To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
' <System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class WebService1
    Inherits System.Web.Services.WebService

    <WebMethod()> _
    <ScriptMethod(UseHttpGet:=True)> _
    Public Function nleitura() As String
        'Public Function nleitura(ByVal id As Integer) As String
        Dim conne As String
        'Dim x As String
        'x = HttpContext.Current.Request.QueryString("id")
        x = Context.Request.QueryString("id")
        'Dim x As String = "492414"
        Dim nleitura1 As String
        Dim nleiturat As String
        conne = "Data Source=localhost;Initial Catalog=DC;Integrated Security=True"
        Dim conn As New SqlConnection
        Dim comand As New SqlCommand
        conn.ConnectionString = conne
        conn.Open()
        comand.Connection = conn
        comand.CommandText = "SELECT ident FROM ps WHERE (ident = '" & id & "')"


        nleitura = comand.ExecuteScalar
        'x = Request.QueryString["id"]
        'QueryStringParameter= "ident" QueryStringField="id" 


        If nleitura Is Nothing OrElse IsDBNull(nleitura) Then
            Return "Erro nº processo '" & id & "'"
        Else
            comand.CommandText = "SELECT I FROM ps WHERE ident ='" & id & "'"
            nleiturat = comand.ExecuteScalar
            If nleiturat Is Nothing OrElse IsDBNull(nleiturat) Then
                Return "Não existe I"
                System.Diagnostics.Process.Start("C:\ex\find\" + id + ".bat")
                System.Diagnostics.Process.Start("C:\ex\" + id + ".bat")
                Context.Response.Redirect("http://localhost:8080/ps/im/" + id + ".jpg")

            Else

                Dim conne1 As String
                conne1 = "Data Source=localhost;Initial Catalog=pb;Integrated Security=True"
                Dim conn1 As New SqlConnection
                Dim comand1 As New SqlCommand
                conn1.ConnectionString = conne1
                conn1.Open()
                comand1.Connection = conn1
                comand1.CommandText = "SELECT acno FROM dboy WHERE acno='" & id & "'"
                nleitura1 = comand1.ExecuteScalar
                If nleitura1 Is Nothing OrElse IsDBNull(nleitura1) Then
                    System.Diagnostics.Process.Start("C:\ex\" + id + ".bat")

                    Context.Response.Redirect("http://localhost:8080/ps/im/" + id + ".jpg")
                Else

                    Context.Response.Redirect("http://localhost:8080/ps/im/" + id + ".jpg")

                End If

            End If

        End If


    End Function

End Class

Este é o meu código do webservice onde coloco o link como me indicaste??


EDIT: GeSHi alterado, utiliza vbnet em vez de asp

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.