none
filtrar fechas en un dataView por medio de RowFilter RRS feed

  • Pregunta

  • Hola a tod@s:
    A ver si alguien me puede sacar de este apuro. Hago una consulta a la base de datos y la pongo en una tabla. Después hago esto
    DataView DataViewFiltrado;
    DataViewFiltrado = dataTablaMaster.DefaultView;

    la tabla tiene una columna llamada FECHA, y yo quisiera utilizar la propiedad
    DataViewFiltrado.RowFilter = ??
    para filtrar entre dos fechas.

    En el dataGrid me muestra la fecha como 14/03/07, y la fecha que cojo las cojo de un dataTimePicker con la opción de dateTimePicker.Value.ToShortDateString(), con lo que obtengo una fecha con el mismo formato que tengo o puedo ver en el dataGrid, al lanzar esto no me hace nada.

    he leido algo por ahí y creo que las fechas hay que utilizarlas como cadenas, esto es
    string cadRowFilter = "FECHA>='" + dtpFechaInicio.Value.ToShortDateString() + "'";
    aunque también he leido lo de poner el # entre la fecha y la verdad es que no se que es lo que falla.

    Alguién puede ayudarme?
    Muchas gracias.
    miércoles, 14 de marzo de 2007 12:05

Todas las respuestas

  •  

    Hola,

    Depende mucho de la base de datos que utilices y del idioma en el que esta instalada.

    Pero yo siempre recomiendo lo mismo.

    Ponla entre comillas simples con este formato aaaammdd

    Ejemplo:

    el 14/03/2007 pasaselo como '20070314'

    Pruebalo y nos cuentas.

    (esto no funciona con access, aviso)

    Un saludo.

    miércoles, 14 de marzo de 2007 12:11
  • La verdad es que no depende de la base de datos, como ya he dicho la consulta ha sido realizada y la información ahora está en un dataView, que tiene un método para poder hacer filtrados sobre ella. Javier, Creo que si lanzara esa consulta que me dices contra el dataview cuyo formato en la columna FECHA es dd/mm/aa, no haría nada, supongo.

    Voy a probarlo y os digo.
    jueves, 15 de marzo de 2007 8:01
  •  

    mmmm

    Sino recuerdo mal el RowFilter utiliza la misma sintaxis que el transact-SQL de la base de datos que hayas consultado.

    Por lo tanto funcionará

    Saludos.

    jueves, 15 de marzo de 2007 8:50
  • Hola Javier:
    ¿Qué es lo que funcionará? ¿la propuesta que has comentado tu?

    Muchas gracias
    jueves, 15 de marzo de 2007 8:53
  •  

    Mi propuesta, si jejejjeje

    Perdona es que ando un poco sopa

    Saludos.

    jueves, 15 de marzo de 2007 8:59
  • Con permiso...

    Como dice Javier utiliza el formato 'yyyymmdd' tanto para la insercción como para la consulta. En lugar de ToShortDateString() utiliza ToString("yyyymmdd")

    Además puedes echar mano de la función Convert(DateTime, GetDate(),112) para obtener el formato deseado desde un string a un tipo DateTime.

    Saludos

    martes, 20 de marzo de 2007 8:37
    Moderador
  • Utilizar lo siguiente:

    CualquierVista.RowFilter = "   substring(convert(fecharecepcion, 'System.String'),1,10) = '16/04/2007' "





    lunes, 16 de abril de 2007 22:16
  • Alguna vez hice algo como esto..

     

    Dim Condicion_Fecha As String = ""

    Condicion_Fecha = " (FECHAHORA>#" + Me.DTP_Fecha_Inicio.Value.Month.ToString + "/" + Me.DTP_Fecha_Inicio.Value.Day.ToString + "/" + Me.DTP_Fecha_Inicio.Value.Year.ToString + "#)" + _

    " and (FECHAHORA<#" + Me.DTP_Fecha_Final.Value.AddDays(1).Month.ToString + "/" + Me.DTP_Fecha_Final.Value.AddDays(1).Day.ToString + "/" + Me.DTP_Fecha_Final.Value.AddDays(1).Year.ToString + "#)"

     

     

    vista.RowFilter = Otros filtros + " and " + Condicion_Fecha

     

     

    DTP---->Datatimepicker

     

    Espero te sirva...

    lunes, 23 de julio de 2007 16:08