locked
Error de sintaxis: falta el operando después del operador RRS feed

  • Pregunta

  • Utilizo la siguiente función para filtrar el listado de un datagridview

    private void SetFilterDataGrid(){

    bindSource.Filter = "Fecha BETWEEN " + datepckFechaInicial.Value.ToString() + " AND " + datepckFechaFinal.Value.ToString();

    }

    No entiendo el error, he utilizado el filtro en una consulta y funciona


    • Editado Chema Pando miércoles, 10 de octubre de 2018 17:50
    miércoles, 10 de octubre de 2018 17:00

Respuestas

  • Buenas,

    En tu código veo que falta un ";" después del segundo ToString(), prueba así:

    private void SetFilterDataGrid(){
    bindSource.Filter = "Fecha BETWEEN " + datepckFechaInicial.Value.ToString() + " AND " + datepckFechaFinal.Value.ToString();
    }

    Nos comentas que tal te va

    Atte


    Jorge Turrado Ferrero

    Mis repositorios en GitHub

    Mi Blog


    Ranking GitHub Euskadi
    Ranking GitHub Alava

    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.


    miércoles, 10 de octubre de 2018 17:47
  • Okey,

    Prueba también encerrando la columna entre []

    private void SetFilterDataGrid(){
    bindSource.Filter = "[Fecha] BETWEEN " + datepckFechaInicial.Value.ToString() + " AND " + datepckFechaFinal.Value.ToString();
    }

    Atte


    Jorge Turrado Ferrero

    Mis repositorios en GitHub

    Mi Blog


    Ranking GitHub Euskadi
    Ranking GitHub Alava

    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    miércoles, 10 de octubre de 2018 18:15
  • Buenas,

    He hecho una prueba de concepto y tienes razón, eso no funciona, he googleado un poco la documentación y he visto un par de cosas, primero, el operador BETWEEN no esta permitido, segundo, hay que utilizar cultura invariante, y tercero, las fechas hay que delimitarlas con "#". Con eso, puedes probar tu código así:

    private void SetFilterDataGrid(){
    dataBinding.Filter = "Fecha  >= #" + datepckFechaInicial.Value.ToString(System.Globalization.CultureInfo.InvariantCulture.DateTimeFormat) + "# AND Fecha  <= #" + datepckFechaFinal.Value.ToString(System.Globalization.CultureInfo.InvariantCulture.DateTimeFormat) + "#";
    }

    Prueba y nos comentas que tal te va

    Atte


    Jorge Turrado Ferrero

    Mis repositorios en GitHub

    Mi Blog


    Ranking GitHub Euskadi
    Ranking GitHub Alava

    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    viernes, 12 de octubre de 2018 18:56

Todas las respuestas

  • Buenas,

    En tu código veo que falta un ";" después del segundo ToString(), prueba así:

    private void SetFilterDataGrid(){
    bindSource.Filter = "Fecha BETWEEN " + datepckFechaInicial.Value.ToString() + " AND " + datepckFechaFinal.Value.ToString();
    }

    Nos comentas que tal te va

    Atte


    Jorge Turrado Ferrero

    Mis repositorios en GitHub

    Mi Blog


    Ranking GitHub Euskadi
    Ranking GitHub Alava

    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.


    miércoles, 10 de octubre de 2018 17:47
  • Es un error mio al copiar el código desde Visual Studio, lo intente corregir pero el servidor me devuelve un error.

    Gracias

    miércoles, 10 de octubre de 2018 17:55
  • Okey,

    Prueba también encerrando la columna entre []

    private void SetFilterDataGrid(){
    bindSource.Filter = "[Fecha] BETWEEN " + datepckFechaInicial.Value.ToString() + " AND " + datepckFechaFinal.Value.ToString();
    }

    Atte


    Jorge Turrado Ferrero

    Mis repositorios en GitHub

    Mi Blog


    Ranking GitHub Euskadi
    Ranking GitHub Alava

    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    miércoles, 10 de octubre de 2018 18:15
  • Esto no resuelve nada.
    viernes, 12 de octubre de 2018 5:32
  • Buenas,

    He hecho una prueba de concepto y tienes razón, eso no funciona, he googleado un poco la documentación y he visto un par de cosas, primero, el operador BETWEEN no esta permitido, segundo, hay que utilizar cultura invariante, y tercero, las fechas hay que delimitarlas con "#". Con eso, puedes probar tu código así:

    private void SetFilterDataGrid(){
    dataBinding.Filter = "Fecha  >= #" + datepckFechaInicial.Value.ToString(System.Globalization.CultureInfo.InvariantCulture.DateTimeFormat) + "# AND Fecha  <= #" + datepckFechaFinal.Value.ToString(System.Globalization.CultureInfo.InvariantCulture.DateTimeFormat) + "#";
    }

    Prueba y nos comentas que tal te va

    Atte


    Jorge Turrado Ferrero

    Mis repositorios en GitHub

    Mi Blog


    Ranking GitHub Euskadi
    Ranking GitHub Alava

    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    viernes, 12 de octubre de 2018 18:56