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,