Transeferencia remota de datos con web service

22/07/2007 - 02:20 por Maria | Informe spam
Hola, tengo problemas para actualizar datos en la web con datos de un sitio
web local. El web service tiene una función que recibe objetos datasets que
se conforman con consultas a una base de datos local. La función realiza una
actuaizacion remota a partir de los datos enviados en los dataset. Al
intentar ejecutar esta función obtengo el siguiente error:

System.Web.Services.Protocols.SoapException: Server was unable to process
request. > Conversion from type 'DBNull' to type 'String' is not valid.

Alguien tuvo acceso a alguna documentación relacionada al tema. Muchas
gracias.

Preguntas similare

Leer las respuestas

#1 carlosmsr
24/07/2007 - 18:12 | Informe spam
como indica el error estás tratando de convertir un DBNull a un string. Un
DBNull no es un string.empty o un "". Deberías agregar lógica para poder
manejar la conversión entre estos dos tipos o configurar tu dataset para que
estos campos no puedan tener valor nulo o podrías agregar un default value
igual a "".
todo depende de los detalles de tu proyecto.

"Maria" wrote:

Hola, tengo problemas para actualizar datos en la web con datos de un sitio
web local. El web service tiene una función que recibe objetos datasets que
se conforman con consultas a una base de datos local. La función realiza una
actuaizacion remota a partir de los datos enviados en los dataset. Al
intentar ejecutar esta función obtengo el siguiente error:

System.Web.Services.Protocols.SoapException: Server was unable to process
request. > Conversion from type 'DBNull' to type 'String' is not valid.

Alguien tuvo acceso a alguna documentación relacionada al tema. Muchas
gracias.
Respuesta Responder a este mensaje
#2 Ronald Ramirez Moran
25/07/2007 - 03:04 | Informe spam
Es posible que se este obviando el valor de algún campo en uno de los
registros y se este seteando el valor por default para todas las columnas
que es DbNull.

Ahora existe una alternativa para solucionarlo es definiendo los Defaults
respectivos a las columnas en la tabla.
Si utiliza Typed DataSets debe de configurarlos en el archivo .xsd, pero si
es UnTyped (o sea No-Tipado) tiene que setearlos manualmente asi:

[VB]
' Este es el objeto que se envia por el WS:
Dim dsPersonas As New DataSet()

' Esta es la tabla a la que usted le va a setear los defaults:
Dim dtDireccion As DataTable = dsPersonas.Tables.Add("Direccion")
dtDireccion.Columns("Direccion2").DefaultValue = String.Empty

[C#]
// Este es el objeto que se envia por el WS:
DataSet dsPersonas = new DataSet();

// Esta es la tabla a la que usted le va a setear los defaults:
DataTable dtDireccion = dsPersonas.Tables.Add("Direccion");
dtDireccion.Columns("Direccion2").DefaultValue = string.Empty;

Espero que esto le sirva,

Saludos Cordiales,

Ronald Ramirez Moran (aka DlanorOk )| http://dlanorok.spaces.live.com


"Maria" wrote in message
news:
Hola, tengo problemas para actualizar datos en la web con datos de un
sitio
web local. El web service tiene una función que recibe objetos datasets
que
se conforman con consultas a una base de datos local. La función realiza
una
actuaizacion remota a partir de los datos enviados en los dataset. Al
intentar ejecutar esta función obtengo el siguiente error:

System.Web.Services.Protocols.SoapException: Server was unable to process
request. > Conversion from type 'DBNull' to type 'String' is not valid.

Alguien tuvo acceso a alguna documentación relacionada al tema. Muchas
gracias.
Respuesta Responder a este mensaje
#3 Ronald Ramirez Moran
27/07/2007 - 22:19 | Informe spam
En realidad el DataSet es serializado antes de ser transportado, recuerda
que lo que se intercambian son mensajes SOAP.

La recomendación deberia ser, que envie solo los cambios realizados
utilizando la funcion GetChanges del DataSet. Evitando transmitir
informacion innecesaria.

Saludos Cordiales,

Ronald Ramirez Moran (aka DlanorOk) | http://dlanorok.spaces.live.com


_____________________
"cali" wrote in message
news:%
una consultaestas pasando dataset con regular cantidad de
filas?????????? pork capaz sea mejor que serialices el dataset para hacer
una transferencia mas rapida .
capaz tengas varios clientes que hacen la misma accion y una mejora en el
proceso podria agilizar esta funcion
"Maria" wrote in message
news:
Hola, tengo problemas para actualizar datos en la web con datos de un sitio
web local. El web service tiene una función que recibe objetos datasets que
se conforman con consultas a una base de datos local. La función realiza una
actuaizacion remota a partir de los datos enviados en los dataset. Al
intentar ejecutar esta función obtengo el siguiente error:

System.Web.Services.Protocols.SoapException: Server was unable to process
request. > Conversion from type 'DBNull' to type 'String' is not valid.

Alguien tuvo acceso a alguna documentación relacionada al tema. Muchas
gracias.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida