UPDATE ME DEVUELVE ERROR : CON LA FECHA DEL DGV

Desbordamiento de SqlDateTime. Debe estar entre 1/1/1753 12:00:00 AM y 12/31/9999 11:59:59 PM.


En determinados escenarios donde intervienen plataformas en múltiples lenguajes, puede ser necesario implementar unas funciones extras para que la interacción entre formatos se realice correctamente. (sin hablar de las excepciones para tener en cuenta si sumamos el tema de zonas horarias).


Una idea seria realizar la adaptación entre la fecha y hora del objeto (en este caso el DGV) y la asignación de los valores que retornaran, cuando los extremos esperan diferentes formatos.


Puedes capturar el “cellFormating” del DGV y controlar la conversión en el “Parse”.


Aquí tienes un Ejemplo :


http://msdn.microsoft.com/es-es/library/system.windows.forms.datagridview(VS.80).aspx


En otras situaciones donde no disponemos de los “Format” y “Parse” podemos optar por creamos nuestra propia estructura…


   


    ‘ Definicion de la estructura para Fecha/Hora


    ‘ segun la definicion del lpSystemTime


    Structure FechaYHora


        Public Año As UInt16


        Public Mes As UInt16


        Public DiaDeLaSemana As UInt16


        Public Dia As UInt16


        Public Hora As UInt16


        Public Minutos As UInt16


        Public Segundos As UInt16


        Public Milis As UInt16


    End Structure


 


    ‘Funciones Fecha/Hora sistema


    Declare Function GetSystemTime Lib “Kernel32.dll” (ByRef lpSystemTime As FechaYHora) As UInt32


    Declare Function SetSystemTime Lib “Kernel32.dll” (ByRef lpSystemTime As FechaYHora) As UInt32


 


    Private MiFechaYHora = New FechaYHora


 


    Sub DelServidor(ByVal FechaHoraOrigen As DateTime)


        MiFechaYHora.Año = Convert.ToUInt16(FechaHoraOrigen.Year)


        MiFechaYHora.Mes = Convert.ToUInt16(FechaHoraOrigen.Month)


        MiFechaYHora.Dia = Convert.ToUInt16(FechaHoraOrigen.Day)


        MiFechaYHora.Hora = Convert.ToUInt16(FechaHoraOrigen.Hour)


        MiFechaYHora.Minutos = Convert.ToUInt16(FechaHoraOrigen.Minute)


        MiFechaYHora.Segundos = Convert.ToUInt16(FechaHoraOrigen.Second)


        ‘ luego debeis asignarlo segun convenga… desde o hacia el control


        ‘ o llamando a la funcion de asignar la nueva entrada


        SetSystemTime(MiFechaYHora)


    End Sub


 


Espero te ayude,
Pep Lluis,

One thought on “UPDATE ME DEVUELVE ERROR : CON LA FECHA DEL DGV”

  1. Hola, tengo problemas con el siguiente codigo, lo que estoy tratando de comparar es la hora actual del sistema con la hora que se muestra en la celda que estoy cargando desde la base de datos. Sabes que es lo que estoy haciendo mal?

    Private Sub HorarioDataGridView_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles HorarioDataGridView.CellFormatting

    Dim currentTime As Date
    currentTime = Format(Now, “hh:mm:ss”)
    If e.ColumnIndex = 1 Then
    If CDate(e.Value) = currentTime Then
    e.CellStyle.BackColor = System.Drawing.Color.BlueViolet
    End If
    End If

    End Sub

    Gracias =)

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>