如何在Web服务中使用函数

时间:2014-02-06 19:06:05

标签: c# vb.net web-services

我有一个带有功能的web服务。它在应用程序中,我想使用它,但我不确定它是如何工作的。

我的问题在于函数标题,以及最后的返回?不知道应该在那里。基本上我的web服务必须运行存储的procudure,循环遍历数据集,procudure返回的行应该以字符串形式显示。

C#help也欢迎

网络服务:

功能:

' Not sure what must be in header. '
Public Function SelectAuditsFunction(ByVal PTC_ID As Integer, ByVal Message As String) As String

        Dim success As Boolean = False
        Dim lblLinkedAudits As String
        Dim sqlString As String = String.Empty
        Dim conn As SqlConnection
        Dim connString As String = "MyConn"
        Dim cmdGetPol As New SqlCommand("p_GetLinkedProcuduresProtocol")
        cmdGetPol.Parameters.AddWithValue("PTC_ID", PTC_ID)
        cmdGetPol.CommandType = CommandType.StoredProcedure
        cmdGetPol.Connection = conn


        Dim sqlConnGetLinkedAudits As New SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings("MyConnManagement").ConnectionString)
        sqlConnGetLinkedAudits.Open()

        Dim sqlDataAdapGetLinkedAudits As New SqlClient.SqlDataAdapter(sqlString, sqlConnGetLinkedAudits)
        sqlDataAdapGetLinkedAudits.SelectCommand.CommandType = CommandType.Text

        Dim sqlParGetLinkedAudits As New SqlClient.SqlParameter("@PTC_ID", SqlDbType.NVarChar, 255)

        sqlDataAdapGetLinkedAudits.SelectCommand.Parameters.Add(sqlParGetLinkedAudits)

        Dim dsGetLinkedAudits As New DataSet
        Try
            sqlDataAdapGetLinkedAudits.Fill(dsGetLinkedAudits, "LinkedAudits") '<--- Not sure how to loop through all the items in dataset and set to a string.
        Catch ex As Exception
        Finally
            sqlConnGetLinkedAudits.Close()
            sqlConnGetLinkedAudits.Dispose()
        End Try

        For Each dr As DataRow In dsGetLinkedAudits.Tables(0).Rows
            lblLinkedAudits = (dr("dsProtocols"))
        Next
        'Return Here not sure what to do, At the end the string should be returned! 
        Return lblLinkedAudits.ToString

    End Function

1 个答案:

答案 0 :(得分:1)

首先确定第一件事:

必须在要调用它们的地方引用WebServices,您可以在服务端执行任何操作,如果您不启动该服务并在客户端中引用它,它将不会执行任何操作

其次,要在数据集上循环,在这个答案中就可以这样了

Loop through datatable rows

第三,它只需要以字符串形式返回它,这样你就可以使用StringBuilder相应地附加你需要的东西

最后函数的标题你应该在项目上有一个IServiceFile,在那里它应该是你的函数正上方的[OperationContract],这样服务就知道可以调用该函数了