elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Problema al mostrar fecha sin hora.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema al mostrar fecha sin hora.  (Leído 4,454 veces)
nolasco281


Desconectado Desconectado

Mensajes: 319


Ver Perfil
Problema al mostrar fecha sin hora.
« en: 16 Mayo 2015, 01:35 am »

Hola como esta,
Mi duda es la siguiente, mando una fecha a la BD pero al momento de mostrarla en VB, en un dataGridview me trae la fecha y hora no sé por qué, ya que en la BD no la muestra

Muestra


No se si debo validar en el Insert el formato de la fecha, o al momento en que se manda a la BD
,o usar alguna funcion del DataGrid (Control telerik) si es que la tiene.

Código
  1. 'Declaracion de la variable
  2. Dim fecCompa As Date
  3. fecCompa = DateTime.Today.AddDays(0) '.ToString(("MM-dd-yyyy"))
  4.  
  5. 'Este es mi Insert
  6. Dim comando1 As New SqlCommand("Insert into cancelacion(codigoDelPedido, estadoDelPedido, fechaDeCancelacion, horaDeCancelacion," & _
  7.                                               " formaDePago, prioridad, tipoDePedido)" & _
  8.                                               "values (@codigoDelPedido, @estadoDelPedido, @fechaDeCancelacion, @horaDeCancelacion, " & _
  9.                                               "@formaDePago, @prioridad, @tipoDePedido)", con)
  10.  
  11. 'De esta forma la mando a la BD
  12. comando1.Parameters.Add("@fechaDeCancelacion", SqlDbType.Date).Value = fecCompa
  13.  

'Asi defini el campo en la tabla
Código
  1. fechaDeCancelacion DATE NOT NULL,

Saludos.


« Última modificación: 16 Mayo 2015, 01:47 am por nolasco281 » En línea

Lo que se puede imaginar... se puede programar.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: Problema al mostrar fecha sin hora.
« Respuesta #1 en: 16 Mayo 2015, 06:44 am »

Prueba cómo hago en este ejemplo:

Código
  1. Dim dt As New DataTable
  2. dt.Columns.Add("columnDate")
  3. dt.Columns("columnDate").DataType = GetType(Date)
  4. dt.Rows.Add(DateTime.Today)
  5. RadGridView1.DataSource = dt.DefaultView
  6.  
  7. Dim column As GridViewDateTimeColumn = CType(RadGridView1.Columns("columnDate"), GridViewDateTimeColumn)
  8. ' column.DataType = GetType(Date)
  9. column.FormatString = "{0:yyyy-MM-dd}"
  10. RadGridView1.BestFitColumns()

Nota: La columna debe ser del tipo GridViewDateTimeColumn, si es del tipo GridViewTextBoxColumn no afectará el formato aplicado.

Saludos


« Última modificación: 16 Mayo 2015, 06:49 am por Eleкtro » En línea


nolasco281


Desconectado Desconectado

Mensajes: 319


Ver Perfil
Re: Problema al mostrar fecha sin hora.
« Respuesta #2 en: 16 Mayo 2015, 07:12 am »

Hola Eleкtro.

Código
  1. Dim tabla3 As New DataTable()
  2. tabla3.Columns.Add("Fecha de Cancelación o Devolución")
  3. tabla3.Columns("Fecha de Cancelación o Devolución").DataType = GetType(Date) 'Obtiene dato como fecha
  4. 'tabla3.Rows.Add(DateTime.Today)
  5.  
  6. Dim column As GridViewDateTimeColumn = CType(dgvCanDev.Columns("Fecha de Cancelación o Devolución"), GridViewDateTimeColumn)
  7. 'column.DataType = GetType(Date)
  8. column.FormatString = "{0:yyyy-MM-dd}" 'Tambien puedo usar {0:dddd, MMM dd, yyyy} {0:dd - MM - yyyy}
  9. dgvCanDev.BestFitColumns()
  10.  
  11. dgvCanDev.Columns("Fecha de Cancelación o Devolución").Width = 210
  12.  

Resolvió el problema. Mil gracias llevaban varias horas ya.



Tengo las siguientes dudas tal vez puedas ayudarme

Yo estuve usando
Código
  1. GridViewDateTimeColumn
y
Código
  1. .FormatString = "{0:yyyy-MM-dd}"

Incluso use el evento CellFormatting y nada

Tambien pero no funciono
Código
  1. 'dgvCanDev.Columns("Fecha de Cancelación o Devolución").FormatString = "{0:dddd, MMM dd, yyyy}"
  2. 'dgvCanDev.Columns("Fecha de Cancelación o Devolución").FormatString = "{0:yyyy/MM/dd}"
  3. 'dgvCanDev.Columns("Fecha de Cancelación o Devolución").FormatString = "{0:dd - MM - yyyy}"

Las dudas que tengo es en esta línea no estoy muy seguro de lo que hace
Código
  1. Dim column As GridViewDateTimeColumn = CType(RadGridView1.Columns("columnDate"), GridViewDateTimeColumn)

Al igual que esta
Código
  1. RadGridView1.BestFitColumns()

Tambien por que puso comentado
Código
  1. 'column.DataType = GetType(Date)

Se puede obtener el dato hasta despues de convertirlo?

No sabía que se le asignaba el tipo a la columna GridViewDateTimeColumn. No mencionan eso en la documentación de telerik o por lo menos en lo que estuve viendo.

Muchas gracias de nuevo.

Saludos.
« Última modificación: 16 Mayo 2015, 07:26 am por nolasco281 » En línea

Lo que se puede imaginar... se puede programar.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: Problema al mostrar fecha sin hora.
« Respuesta #3 en: 16 Mayo 2015, 07:57 am »

No sabía que se le asignaba el tipo a la columna GridViewDateTimeColumn. No mencionan eso en la documentación de telerik o por lo menos en lo que estuve viendo.

Los controles de Telerik son "inteligentes", resuelven el DataType y asignan el tipo de columna más apropiada para mostrar la representación de ese DataType.

Aquí tienes toda la información sobre las columnas:
http://www.telerik.com/help/winforms/gridview-columns.html



no estoy muy seguro de lo que hace
Código
  1. Dim column As GridViewDateTimeColumn = CType(RadGridView1.Columns("columnDate"), GridViewDateTimeColumn)

Una conversión de Type.

Más que nada para seguir buenas prácticas de programación y evitar errores al aplicar el ejemplo que te mostré;
si la columna fuese del tipo GridViewTextBoxColumn (sería así si no resolviese el DataType correctamente) lanzaría una excepción de casteo al intentar convertir, aunque ambas classes hereden de la misma class, GridViewDataColumn/b].



Tambien por que puso comentado
Código
  1. 'column.DataType = GetType(Date)

Solo lo puse para dejarte escrito un ejemplo de como puedes obtener y/o asignar el Datatype de los datos de una columna.



Al igual que esta
Código
  1. RadGridView1.BestFitColumns()

Ese método solamente con leer el nombre se explica por si mismo, ¿por qué no utilizas la característica IntelliSense de VisualStudio para averiguar lo que hace?, pasa el puntero del ratón por encima del nombre del método para visualizar la descripción en la documentación XML...

Ssirve para ajustar automaticamente la longitud de las columnas adaptándose al tamaño de los datos de las celdas.



Citar
Se puede obtener el dato hasta despues de convertirlo?

No entiendo a lo que te refieres exactamente.


Saludos!
« Última modificación: 16 Mayo 2015, 07:59 am por Eleкtro » En línea


nolasco281


Desconectado Desconectado

Mensajes: 319


Ver Perfil
Re: Problema al mostrar fecha sin hora.
« Respuesta #4 en: 16 Mayo 2015, 08:12 am »

IntelliSense ya lo active mil gracias de nuevo por la explicacion ;-) ;-)

vi el link que me mandaste de telerik lo habia visto pero lo que no menciona esto

Código
  1. dt.Columns("columnDate")[color=red].DataType = GetType(Date)[/color]

Gracias de nuevo.

Saludos.
En línea

Lo que se puede imaginar... se puede programar.
nolasco281


Desconectado Desconectado

Mensajes: 319


Ver Perfil
Re: Problema al mostrar fecha sin hora.
« Respuesta #5 en: 16 Mayo 2015, 10:04 am »

Hola

Disculpen pero no quise abrir otro hilo

Pero el problema es ahora es con la hora quise poner Datetime tambien probe con Date

Código
  1. tabla2.Columns.Add("Hora de entrega").DataType = GetType(DateTime)

Pero me lanza el siquiente error


asi que cambie el codigo por
Código
  1. tabla2.Columns.Add("Hora de entrega").DataType = GetType(TimeSpan)
Corrio la aplicacion pero al llevar a esa columna por el scroll me sale este error.



Mil disculpas enserio pense que seria lo mismo con hora solo que usaria datetime

Saludos.



« Última modificación: 16 Mayo 2015, 11:44 am por nolasco281 » En línea

Lo que se puede imaginar... se puede programar.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: Problema al mostrar fecha sin hora.
« Respuesta #6 en: 16 Mayo 2015, 10:52 am »

La excepción Reflection.TargetInvocation es lanzada por un método invocado mediante Reflection, es una excepción general por lo tanto es imposible averiguar la causa del error con la información que has dado, en la imagen que has mostrado puedes copiar los detalles adicionales de la excepción, MUESTRA ESO.

Si prefieres controlar la excepción mediante código, para ver lo que ha sucedido realmente, captura la excepción interna:

Código
  1. try
  2. catch ex as system.reflection.targetinvocationexception
  3.    trace.writeline(ex.innerexcepion)
  4. end try

De todas formas, las modificaciones que le hagas al control, hazlas dentro del bloque DeferRefresh que te indiqué en otro post:
Código
  1. Using RadGridView1.DeferRefresh()
  2.    ' ...
  3. End Using

Si eso no resuelve el problema, después de asignar el datatype, asígnale el formato de cadena deseado:
Código
  1. Using RadGridView1.DeferRefresh()
  2.    RadGridView1.Columns.Add("Hora de entrega")
  3.    RadGridView1.Columns("Hora de entrega").DataType = GetType(TimeSpan)
  4.    RadGridView1.Columns("Hora de entrega").FormatString = "{0:hh:mm:ss}"
  5. End Using

Si eso tampoco resuelve el problema, deberías formular tu duda en el foro de soporte de Telerik.

Saludos!
« Última modificación: 16 Mayo 2015, 10:54 am por Eleкtro » En línea


nolasco281


Desconectado Desconectado

Mensajes: 319


Ver Perfil
Re: Problema al mostrar fecha sin hora.
« Respuesta #7 en: 16 Mayo 2015, 11:24 am »

Hola gracias por contestar Elektron

Esto es lo que me sale



No me funciono el Try ni el load del form ni cuando se llena el DataGrivew

Código
  1. .DeferRefresh()

Publicare la consulta en los foros de telerik edito este comentario cuando ellos me comenten.

Muchas gracias por el tiempo Elektron.

Saludos.
« Última modificación: 16 Mayo 2015, 11:45 am por nolasco281 » En línea

Lo que se puede imaginar... se puede programar.
nolasco281


Desconectado Desconectado

Mensajes: 319


Ver Perfil
Re: Problema al mostrar fecha sin hora.
« Respuesta #8 en: 16 Mayo 2015, 23:50 pm »

Hola como esta la razon por la que me salen el error es por que a la funcion TimeSpan no se le puede dar formato tanto en Windonws como en el control timepicker de Telerik eso causa el error.

Ahora bien despues de estar leyendo un poco veo que se le puede dar formato convirtiendo el TimeSpan en DateTime.

Lo raro y que no entiendo es que tengo dos controles TimePicker uno me captura solo la hora minutos y segundo encambio el otro me muestra los milesegundos.



Si lo resuelvo muestro la solucion.

Saludos.

PD:Si saven como convertir una columna del Gridview TimeSpan a DateTime se los agradeceria
En línea

Lo que se puede imaginar... se puede programar.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
hora y fecha en nombre
Programación Visual Basic
ciruit 3 1,697 Último mensaje 29 Octubre 2005, 04:08 am
por ciruit
Fecha y hora
Programación Visual Basic
W3XT3R 4 1,724 Último mensaje 25 Abril 2006, 22:09 pm
por W3XT3R
Fecha y hora.
PHP
Rizzen 2 1,454 Último mensaje 29 Diciembre 2007, 20:57 pm
por Rizzen
Problema de Fecha y Hora en ASP.NET
.NET (C#, VB.NET, ASP)
jacj0102 2 2,797 Último mensaje 4 Agosto 2011, 06:51 am
por jacj0102
javascript: mostrar fecha en distintos formatos
Desarrollo Web
JonaLamper 1 1,094 Último mensaje 30 Enero 2017, 19:01 pm
por dato000
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines