Web服务有问题传回客户端

时间:2015-11-27 07:40:05

标签: asp.net sql-server vb.net web-services

我无法将从MS-SQL2012到多个行的结果传回客户端。我试图谷歌但仍然没有找到解决方案。由于我是.NET的新手,这是我的第一个网络服务,需要助手解决我的问题或建议任何更好的解决方案。

Result need to pass back to client

Public Class Service1
Inherits System.Web.Services.WebService

Public Class Dealer
    Public IDNo, ICFound, POFound As String
End Class

<WebMethod()> _
Public Function DailyCheckDealer(records As String()()) As String
    Dim mylist As List(Of String()) = records.ToList()
    Dim datarow As String = ""
    Dim result As String = "Done"

    For i As Integer = 0 To mylist.Count - 1
        Dim m As String() = mylist(i)
        For j As Integer = 0 To m.Length - 1
            datarow += m(j) + " "
        Next
    Next

    //Insert the array into the database. 

    Dim objDealer As New Dealer
    Dim myConnString = System.Configuration.ConfigurationManager.AppSettings("MM_CONNECTION_STRING_iPRIS")
    Dim myConnection1 = New SqlConnection(myConnString)
    Dim myCommand = New SqlCommand()
    myCommand.CommandType = CommandType.StoredProcedure
    myCommand.Connection = myConnection1
    myCommand.CommandText = "DailyCheckDealer"
    myCommand.Parameters.Add("@DataRow", SqlDbType.VarChar, 8000).Value = datarow
    myConnection1.Open()
    myCommand.ExecuteNonQuery()
    myConnection1.Close()

    // Get the record(s) after processing and return it back to client

    Dim myConnection2 = New SqlConnection(myConnString)
    Dim objComm As New SqlCommand("Select IDNo, IDFound, POFound From DailyDealerCheck Order By IDNo", myConnection2)
    myConnection2.Open()
    Dim sdr As SqlDataReader = objComm.ExecuteReader()
    If sdr.Read() Then
        objDealer.IDNo = sdr("IDNo").ToString()
        objDealer.ICFound = sdr("IDFound").ToString()
        objDealer.POFound = sdr("POFound").ToString()
    End If
    myConnection2.Close()
    Return objDealer
    End Function
End Class

1 个答案:

答案 0 :(得分:0)

您正在获取数据并将其放入objDealer,这是Dealer类型的实例。然后你实际上有SearchableAttribute

很明显,您想要返回经销商的实例。但是,您的函数被声明为返回一个字符串。那甚至不应该编译!将声明更改为:

Return objDealer

这将允许它返回经销商而不是字符串。

编辑 - 返回多个经销商:

<WebMethod()> _
Public Function DailyCheckDealer(records As String()()) As Dealer