Autor
|
Tema: Problema al mostrar fecha sin hora. (Leído 8,064 veces)
|
nolasco281
Desconectado
Mensajes: 319
|
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. 'Declaracion de la variable Dim fecCompa As Date fecCompa = DateTime.Today.AddDays(0) '.ToString(("MM-dd-yyyy")) 'Este es mi Insert Dim comando1 As New SqlCommand("Insert into cancelacion(codigoDelPedido, estadoDelPedido, fechaDeCancelacion, horaDeCancelacion," & _ " formaDePago, prioridad, tipoDePedido)" & _ "values (@codigoDelPedido, @estadoDelPedido, @fechaDeCancelacion, @horaDeCancelacion, " & _ "@formaDePago, @prioridad, @tipoDePedido)", con) 'De esta forma la mando a la BD comando1.Parameters.Add("@fechaDeCancelacion", SqlDbType.Date).Value = fecCompa
'Asi defini el campo en la tabla 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
Mensajes: 9.878
|
Prueba cómo hago en este ejemplo: Dim dt As New DataTable dt.Columns.Add("columnDate") dt.Columns("columnDate").DataType = GetType(Date) dt.Rows.Add(DateTime.Today) RadGridView1.DataSource = dt.DefaultView Dim column As GridViewDateTimeColumn = CType(RadGridView1.Columns("columnDate"), GridViewDateTimeColumn) ' column.DataType = GetType(Date) column.FormatString = "{0:yyyy-MM-dd}" 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
Mensajes: 319
|
Hola Eleкtro. Dim tabla3 As New DataTable() tabla3.Columns.Add("Fecha de Cancelación o Devolución") tabla3.Columns("Fecha de Cancelación o Devolución").DataType = GetType(Date) 'Obtiene dato como fecha 'tabla3.Rows.Add(DateTime.Today) Dim column As GridViewDateTimeColumn = CType(dgvCanDev.Columns("Fecha de Cancelación o Devolución"), GridViewDateTimeColumn) 'column.DataType = GetType(Date) column.FormatString = "{0:yyyy-MM-dd}" 'Tambien puedo usar {0:dddd, MMM dd, yyyy} {0:dd - MM - yyyy} dgvCanDev.BestFitColumns() dgvCanDev.Columns("Fecha de Cancelación o Devolución").Width = 210
Resolvió el problema. Mil gracias llevaban varias horas ya. Tengo las siguientes dudas tal vez puedas ayudarme Yo estuve usando GridViewDateTimeColumn
y .FormatString = "{0:yyyy-MM-dd}"
Incluso use el evento CellFormatting y nada Tambien pero no funciono 'dgvCanDev.Columns("Fecha de Cancelación o Devolución").FormatString = "{0:dddd, MMM dd, yyyy}" 'dgvCanDev.Columns("Fecha de Cancelación o Devolución").FormatString = "{0:yyyy/MM/dd}" '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 Dim column As GridViewDateTimeColumn = CType(RadGridView1.Columns("columnDate"), GridViewDateTimeColumn)
Al igual que esta RadGridView1.BestFitColumns()
Tambien por que puso comentado '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
Mensajes: 9.878
|
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 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 '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 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.
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
Mensajes: 319
|
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 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
Mensajes: 319
|
Hola Disculpen pero no quise abrir otro hilo Pero el problema es ahora es con la hora quise poner Datetime tambien probe con Date tabla2.Columns.Add("Hora de entrega").DataType = GetType(DateTime)
Pero me lanza el siquiente error asi que cambie el codigo por 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
Mensajes: 9.878
|
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: try catch ex as system.reflection.targetinvocationexception trace.writeline(ex.innerexcepion) end try
De todas formas, las modificaciones que le hagas al control, hazlas dentro del bloque DeferRefresh que te indiqué en otro post: Using RadGridView1.DeferRefresh() ' ... End Using
Si eso no resuelve el problema, después de asignar el datatype, asígnale el formato de cadena deseado: Using RadGridView1.DeferRefresh() RadGridView1.Columns.Add("Hora de entrega") RadGridView1.Columns("Hora de entrega").DataType = GetType(TimeSpan) RadGridView1.Columns("Hora de entrega").FormatString = "{0:hh:mm:ss}" 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
Mensajes: 319
|
Hola gracias por contestar ElektronEsto es lo que me sale No me funciono el Try ni el load del form ni cuando se llena el DataGrivew .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
Mensajes: 319
|
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.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
hora y fecha en nombre
Programación Visual Basic
|
ciruit
|
3
|
2,514
|
29 Octubre 2005, 04:08 am
por ciruit
|
|
|
Fecha y hora
Programación Visual Basic
|
W3XT3R
|
4
|
2,693
|
25 Abril 2006, 22:09 pm
por W3XT3R
|
|
|
Fecha y hora.
PHP
|
Rizzen
|
2
|
2,705
|
29 Diciembre 2007, 20:57 pm
por Rizzen
|
|
|
Problema de Fecha y Hora en ASP.NET
.NET (C#, VB.NET, ASP)
|
jacj0102
|
2
|
3,943
|
4 Agosto 2011, 06:51 am
por jacj0102
|
|
|
javascript: mostrar fecha en distintos formatos
Desarrollo Web
|
JonaLamper
|
1
|
2,667
|
30 Enero 2017, 19:01 pm
por dato000
|
|