none
Insertar fecha recuperada de un XML en campo datetime de LINQ RRS feed

  • Pregunta

  • Hola,

    Tengo un problema al introducir un valor datetime mediante LINQ. Me explico, recupero un XML de un servicio Web y ese XML lo quiero volcar a una base de datos mediante LINQ. Cuando inserto entradas que no tienen fechas no tengo problemas, pero al insertar una fecha en un campo datetime me falla. He probado a meterla como STRING, como datetime, etc... pero me falla. ¿Hay que tener alguna consideración especial?

    Así es como lo hago:

    Dim myXElement As XElement = XElement.Load("XML.xml")

    db.baja.InsertOnSubmit(New BDNS.baja With

                                    {

                                        .Fecha_baja = x.Attribute("fecha_baja"),

                                        .Numero = x.Attribute("numero"),

                                        .Peso_total = x.Attribute("peso_total"),

                                        .Eliminado = x.Attribute("eliminado")

                                    }

                                )

    db.SubmitChanges()

    Muchas gracias!!!

    jueves, 30 de enero de 2014 15:04

Respuestas

  • He solucionado el problema cambiando del campo datetime recuperado del xml los - por / y la T por un espacio. De esta manera:

    Llamo a la función pasándole el valor

    .Fecha_baja = CleanDateTimeXML(x.Attribute("fecha_baja").Value),

    Sustituyo los – y la T

    Function CleanDateTimeXML(strIn As String) As String

            Dim f, a, m, d, mm As String

            strIn = Regex.Replace(strIn, "-", "/")

            strIn = Regex.Replace(strIn, "T", " ")

            Return strIn

    End Function

    • Marcado como respuesta Tintxo sábado, 1 de febrero de 2014 12:06
    sábado, 1 de febrero de 2014 12:06
  • Llamo a la función pasándole el valor

    .Fecha_baja = CleanDateTimeXML(x.Attribute("fecha_baja").Value),

    Sustituyo los – y la T

    Function CleanDateTimeXML(strIn As String) As String

            Dim f, a, m, d, mm As String

            strIn = Regex.Replace(strIn, "-", "/")

            strIn = Regex.Replace(strIn, "T", " ")

            Return strIn

    End Function

    • Marcado como respuesta Tintxo sábado, 1 de febrero de 2014 12:07
    sábado, 1 de febrero de 2014 12:07

Todas las respuestas

  • He solucionado el problema cambiando del campo datetime recuperado del xml los - por / y la T por un espacio. De esta manera:

    Llamo a la función pasándole el valor

    .Fecha_baja = CleanDateTimeXML(x.Attribute("fecha_baja").Value),

    Sustituyo los – y la T

    Function CleanDateTimeXML(strIn As String) As String

            Dim f, a, m, d, mm As String

            strIn = Regex.Replace(strIn, "-", "/")

            strIn = Regex.Replace(strIn, "T", " ")

            Return strIn

    End Function

    • Marcado como respuesta Tintxo sábado, 1 de febrero de 2014 12:06
    sábado, 1 de febrero de 2014 12:06
  • Llamo a la función pasándole el valor

    .Fecha_baja = CleanDateTimeXML(x.Attribute("fecha_baja").Value),

    Sustituyo los – y la T

    Function CleanDateTimeXML(strIn As String) As String

            Dim f, a, m, d, mm As String

            strIn = Regex.Replace(strIn, "-", "/")

            strIn = Regex.Replace(strIn, "T", " ")

            Return strIn

    End Function

    • Marcado como respuesta Tintxo sábado, 1 de febrero de 2014 12:07
    sábado, 1 de febrero de 2014 12:07