Hola,
Al final lo que hago no es intentar publicar el DataSet, sino una función que me devuelva ese DataSet.
He intentado devolver el Datatable desde el webservice con una funcion que es: public DataTable GetDataTable(); con el OperationContract.
El problema es que cuando lo añado al cliente se ve que en el proxy la función ha cambiado a:
public pruebaDataset1.localhost.GetDataTableResponseGetDataTableResult GetDataTable();
y claro cuando lo utilizo en el cliente me da este error al compilar:
Error: No se puede convertir implícitamente el tipo 'pruebaDataset1.localhost.GetDataTableResponseGetDataTableResult' a 'System.Data.DataTable'.
Entonces, ¿cómo lo puedo hacer para devolver un DataTable, sin tener que modificar el proxy a mano?
He intentado también devolver un DataSet y eso sí que lo reconoce desde el servicio como correcto, pero al ejecutar el cliente en la línea del GetDataSet me dice: Se ha terminado la conexión: La conexión ha terminado de forma inesperada. ¿No se puede hacer un GetDataSet en el servicio?
He intentado también utilizar DataRow en un procedimiento del servicio (update) para sólo actualizar una fila y al ejecutar el servicio me da este error en la página donde pone si se creó el servicio:
El tipo 'System.Data.DataRow' no se puede serializar. Intente marcarlo con el atributo DataContractAttribute y marque todos los miembros que desee serializar con el atributo DataMemberAttribute.
¿Entonces tampoco podré actualizar una única fila, siempre tendré que mandar toda la tabla?
Así que me gustaría saber que puedo devolver del servicio para poder cargar los datos en el datagridview del cliente. Algo se podrá enviar de un lado a otro, no? De esta forma podría comprobar los cambios con un dataset que tenga creado en el cliente o algo parecido. Pero si no puedo obtener los datos, tampoco puedo comprobar si ha habido cambios.
Me podríais dar alguna solución a esto, por favor.
Gracias.