Halloj! Testa så här: Tack för tipset. Det funkar dock inte. :( Se till att det är dataset i både servicen och sidan så kommer det bli rätt. Viktigt är också att du inte döper om servicens objekt, den måste heta samma som du deklarerat den som. Allt sånt stämmer.Webservice some trilskas med win32 applikation
Jag har gjort en webservice som hämtar lite prylar från en databas och returnerar datan som en datatable till klienten.
<code>
<WebMethod()> _
Public Function GetOrders(ByVal KeyIdent As String) As DataTable
' KNÖLA KNÖLA KNÖLA med databasinformationen
'Ut med datatabellen
Return ObjDT
</code>
Klienten är en windows applikation gjord i Visual Studio 2005 (VB).
<code>
Dim ws As New rosweb.Service1
Dim drow As DataRow
Dim dTable As DataTable
dTable = ws.GetOrders("XXXX")
</code>
Funkar fint.
NU däremot så vill jag använda webservicen från en annan applikation och vips så sket det sig snabbt som ögat. Har gjort en webreference till webservicen och kallar på den på samma sätt som innan
<code>
Dim ws As New rosweb.Service1
Dim drow As DataRow
Dim dTable As DataTable
dTable = ws.GetOrders("XXXX")
'------------------^
'Här skiter det sig
</code>
Nu säger den:
<b>"Value of 'ECS.rosweb.GetOrdersResponseGetOrdersResult' cannot be converted to 'System.Data.DataTable'.</b>
Och varför inte undrar jag då. Det borde väl funka eftersom det går så bra i den andra applikationen och de ser mer eller mindre identiska ut, iallafall den här proceduren som hämtar från webservicen.
HJÄLP!
//JohannesSv: Webservice some trilskas med win32 applikation
Dim oTable As Object
oTable = ws.GetOrders("XXXX")
Inspektera oTable i debuggern och se vilken typ du får som resultat.
Vad jag vill minnas nu är inte DataTable Serializable.
Dvs: den kan inte gör om sig själv till XML.
DataSet ÄR serializeable och det är nog Dataset du bör returnera i det här fallet.
Du når din Table genom DS.Tables(0)Sv:Webservice some trilskas med win32 applikation
Det verkar som att den inte känner av vilken typ returvärdet kommer ha (i detta fall ett dataset).
Den muttrar bara om att
ECS.rosweb.GetOrdersResponseGetOrdersResult inte kan konverteras till System.Data.DataSet
//JohannesSv: Webservice some trilskas med win32 applikation
Sv:Webservice some trilskas med win32 applikation
Om jag accessar min service från min gamla applikation funkar det finfint. KLONAR jag koden till den nya applikationen så icke sa nicke. Av någon jäkla anledning.
//Johannes