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>