pasar un dataset como parametro a un servicio web

45 views
Skip to first unread message

germ...@gmail.com

unread,
Dec 19, 2005, 2:06:57 PM12/19/05
to Desarrollo con Dispositivos Móviles
hola, estoy intentando pasar un dataset como un parámetro en la
llamada de mi servicio web. Pero recibo el siguiente error

Server was unable to
process request. --> Specified cast is not valid.

mi codigo en el servidor es:

<WebMethod()> _
Public Function pda2webservice(ByVal dsSB As DataSet) As Boolean
Dim ds As avex.dsSalidasBajas

ds = dsSB

Return True

End Function

y en la aplicacion pda

dsSB as new dataset
ws = New wsAvex.Service1
Dim ok As Boolean = ws.pda2webservice(dsSB)

si alguien sabe como solucionar esto le agradeceria cualquier
informacion

Jose

unread,
Dec 19, 2005, 4:05:01 PM12/19/05
to DesarrolloConDis...@googlegroups.com
El error lo tienes en la asignación de un dataset a otro en la funcion del
WS.
Prueba haciendo un merge.
ds.Merge(dsSB)
de todas maneras el error básicamente es que estas igualando un dataset
tipado a uno que no lo es. Ese casting esta prohibido.
Si la solucion del merge no te gusta, puedes copiar fila a fila de cada una
de las tablas.

Un saludo.

> -----Mensaje original-----
> De: DesarrolloConDis...@googlegroups.com
> [mailto:DesarrolloConDis...@googlegroups.com] En nombre de
> germ...@gmail.com
> Enviado el: lunes, 19 de diciembre de 2005 20:07
> Para: Desarrollo con Dispositivos Móviles
> Asunto: pasar un dataset como parametro a un servicio web

Manuel Llavador

unread,
Dec 19, 2005, 5:07:52 PM12/19/05
to Desarrollo con Dispositivos Móviles

Lo mejor en esos casos es publicar la estructura de tu DataSet tipado
para que también lo puedas utilizar en el cliente y no tener que hacer
conversiones, ni merges ni copias de filas ni nada...

la cosa es que si la interfaz de tu servicio web es:

Public Function pda2webservice(ByVal dsSB As dsSalidasBajas) As Boolean

en la parte cliente puedes declarar un dataset de ese tipo con código
como:

ws = New wsAvex.adsSalidasBajas

No te olvides de compilar el servicio web y actualizar la referencia
web antes de modificar el cliente (si no no aparecerá la referencia al
dataset tipado en el proxy)

Saludos...

Jose

unread,
Dec 20, 2005, 2:24:10 AM12/20/05
to Desarrollo con Dispositivos Móviles
Si estas utilizando .NET CF 1.0 no tienes datasets tipados en el disk.
movil, eso te obliga a usar datasets NO tipados en el cliente.

> -----Mensaje original-----
> De: ad...@polidotnet.dotnetclubs.com
> [mailto:ad...@polidotnet.dotnetclubs.com] En nombre de Manuel Llavador
> Enviado el: lunes, 19 de diciembre de 2005 23:08


> Para: Desarrollo con Dispositivos Móviles

> Asunto: [Poli.Net-Directiva] Re: pasar un dataset como parametro a un
> servicio web
>
>
>

Manuel Llavador

unread,
Dec 20, 2005, 3:59:11 AM12/20/05
to Desarrollo con Dispositivos Móviles

efectivamente... en el foro de ADO .NET ya he comentado que podría ser
que en CF fuera algo distinto por las limitaciones que tiene...

me pregunto, ninguno de los sp de la versión 1 lo soluciona?? me
parece cutre... de todas formas, he leido que en la versión 2.0 SI
están soportados así que ese es el momento de actualizarse... es
mucho más elegante y te evita muchos problemas

Saludos...

german dario barbosa roa

unread,
Dec 20, 2005, 5:06:51 AM12/20/05
to DesarrolloConDis...@googlegroups.com
pues por la cantidad de exepciones que me a sacado como que el type serializable no existe o merge tampoco existe, supongo que trabajo con la version 1 del compact framework pero lo extraño es que yo descargue la version 2 y la instale. Como me aseguro que el .net emplea la version 2 y no la 1.?

El día 20/12/05, Manuel Llavador <manuell...@hotmail.com> escribió:
Reply all
Reply to author
Forward
0 new messages