Principales respuestas
Error de sintaxis: falta el operando después del operador

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
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.
- Editado Jorge TurradoMVP miércoles, 10 de octubre de 2018 17:47
- Propuesto como respuesta Pablo RubioModerator jueves, 11 de octubre de 2018 15:15
- Marcado como respuesta Pablo RubioModerator viernes, 19 de octubre de 2018 14:42
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
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.
- Propuesto como respuesta Pablo RubioModerator jueves, 11 de octubre de 2018 15:15
- Marcado como respuesta Pablo RubioModerator viernes, 19 de octubre de 2018 14:42
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
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.
- Marcado como respuesta Pablo RubioModerator viernes, 19 de octubre de 2018 14:42
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
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.
- Editado Jorge TurradoMVP miércoles, 10 de octubre de 2018 17:47
- Propuesto como respuesta Pablo RubioModerator jueves, 11 de octubre de 2018 15:15
- Marcado como respuesta Pablo RubioModerator viernes, 19 de octubre de 2018 14:42
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
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.
- Propuesto como respuesta Pablo RubioModerator jueves, 11 de octubre de 2018 15:15
- Marcado como respuesta Pablo RubioModerator viernes, 19 de octubre de 2018 14:42
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
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.
- Marcado como respuesta Pablo RubioModerator viernes, 19 de octubre de 2018 14:42
viernes, 12 de octubre de 2018 18:56