Foros del Web » Programación para mayores de 30 ;) » .NET »

Datagrid,fechas por defecto 01-01-1900

Estas en el tema de Datagrid,fechas por defecto 01-01-1900 en el foro de .NET en Foros del Web. El titulo quizás no lo explica muy bien pero... Cargo en un datagrid fechas con el formato definido {(dd-MM-yyyy}.... el problema esta en cuando van ...
  #1 (permalink)  
Antiguo 13/07/2005, 08:21
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
Datagrid,fechas por defecto 01-01-1900

El titulo quizás no lo explica muy bien pero...
Cargo en un datagrid fechas con el formato definido {(dd-MM-yyyy}.... el problema esta en cuando van insertando fechas en la base de datos y en un determinados casos insertan un campo vacio en una fecha por que aun no esta defidica la fecha de un curso o la razon que sea ya que no se trata de datos obligatorios.Esta fehca que debiera estar vacia en la bd (sql server) aparece así
0:00:00 (campo tipo datetime) y cuando la cargas para mostrala en un grid o en un textbox aparece 01-01-1900 como fecha.
Esto a que se debe??supongo que será desde dodne empeza a contar la fecha pero como puedo solucionar esto????Dodne más me molesta es el los dataggirds por lo menos....

Gracias
  #2 (permalink)  
Antiguo 13/07/2005, 08:53
 
Fecha de Ingreso: mayo-2005
Mensajes: 122
Antigüedad: 19 años
Puntos: 0
Repuesta ..

Eso pasa porqué cuando no se introduce ninguna fecha, por defecto cuando vinculas datos con el datagrid te pone la fecha que dices que no quieres ver. Prueba lo siguiente recorrete los datos resultantes, y si la fecha es la que no quieres ver métele una cadena vacía "" a ver si así borras el contenido y luego te sale vacío. No se si chutará pero es lo único que se me ocurre.

  #3 (permalink)  
Antiguo 13/07/2005, 10:07
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Yo creo que es un problema de la inserción en la BD, es decir, si tu insertas "" te inserta el valor por defecto, que será el que dices, así que deberías pasarle NULL para que te inserte NULL.
  #4 (permalink)  
Antiguo 13/07/2005, 11:25
Avatar de splinter  
Fecha de Ingreso: junio-2004
Ubicación: Misantla,Ver.Mexico
Mensajes: 181
Antigüedad: 19 años, 10 meses
Puntos: 0
Yo uso algo asi, convertir la columna tipo fecha en un tipo caracter, asi entonces puedes hacer esto:

SELECT myname,isnull(convert(varchar,mydate,1),'pending date') as mydate,mydirection
FROM MYTABLE


*debido a que el valor nulo es interpretado como un valor por default 01/01/00

checalo y nos comentas como te fue

saludos
  #5 (permalink)  
Antiguo 13/07/2005, 11:38
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Me decanto por la opcion de Jose Minglein 2
Mejor meterle un NULL, y fuera.
Saludos gente!
__________________
..:: moNTeZIon ::..
  #6 (permalink)  
Antiguo 13/07/2005, 11:52
Avatar de splinter  
Fecha de Ingreso: junio-2004
Ubicación: Misantla,Ver.Mexico
Mensajes: 181
Antigüedad: 19 años, 10 meses
Puntos: 0
Es que de hecho es null el valor del campo que estas obteniendo y convirtiendo

saludos
  #7 (permalink)  
Antiguo 13/07/2005, 13:51
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Si el campo es tipo fecha no es obligatorio hay que insertar null en vez de '' cuando se hace el insert. O si no se guardará la fecha 01-01-1900 por defecto. No es problema del datagrid
  #8 (permalink)  
Antiguo 13/07/2005, 15:03
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
Entiendo la idea,colocar una funcion que mire si es campo vacio pasar un null.Tengo una funcion que controla los numericos y otra para cdo cargas de la bd por los nulos...otra funcion mas para las fechas y listo,mañana lo provaré y les comento.
  #9 (permalink)  
Antiguo 14/07/2005, 07:03
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
Perfecto.Problema arreglado,les dejo aqui la función que aunque no tiene nada de especal es cortita por si alguien la queire ver:

Private Function ponernulos (ByVal o As String) As Object
If o = "" Then
Return System.Convert.DBNull
Else
Return CType(o, Date)
End If
End Function
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:26.