private void btnConsultar_Click(object sender, EventArgs e) { // las condiciones de los filtros se puede pasar a traves de una coleccion de claves y valores (Dictionary) // o bien a través de una cadena de condiciones String sqlcondiciones; sqlcondiciones = ""; // Dictionary: Representa una colección de claves y valores. Dictionary <string, object> parametros = new Dictionary <string, object>(); DateTime fechaDesde; DateTime fechaHasta; if (DateTime.TryParse(txtFechaDesde.Text, out fechaDesde) && DateTime.TryParse(txtFechaHasta.Text, out fechaHasta)) { string desdeSinHora = (string)fechaDesde.ToShortDateString(); string hastaSinHora = (string)fechaHasta.ToShortDateString(); //convertir string a fecha en sqlserver: https://www.w3schools.com/sql/func_sqlserver_convert.asp //CONVERT(datetime,"02/02/2019",103) converte el string "02/02/2019" a fechahora (asi esta en la bd) y 103 indica que considera la fecha como dd/mm/aaaa sqlcondiciones += " AND (producto.fecha_alta>=" + "Convert(DateTime," + "'" + desdeSinHora + "'" + ",103)" + " AND producto.fecha_alta<=" + "Convert(DateTime," + "'" + hastaSinHora + "'" + ",103)" + ") "; //parametros.Add("fechaDesde", txtFechaDesde.Text); //parametros.Add("fechaHasta", txtFechaHasta.Text); } if (!string.IsNullOrEmpty(txtNombre.Text)) { var nombre = txtNombre.Text; sqlcondiciones += " AND ( producto.nombre LIKE " + "'" + "%" + nombre + "%" + "'" + ") "; } if (!string.IsNullOrEmpty(cboMarcas.Text)) { var marca = cboMarcas.SelectedValue.ToString(); sqlcondiciones += " AND (producto.id_marca=" + marca + ") "; } //sin usar parametros (concatenando condiciones) IList <Producto> listadoProductos = productoService.ConsultarProductosConFiltrosCondiciones(sqlcondiciones); //Asigno a la grilla la lista de objetos bug dgvProductos.DataSource = listadoProductos; if (dgvProductos.Rows.Count == 0) { MessageBox.Show("No se encontraron coincidencias para el/los filtros ingresados", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private void btnConsultar_Click(object sender, EventArgs e) { // las condiciones de los filtros se puede pasar a traves de una coleccion de claves y valores (Dictionary) // o bien a través de una cadena de condiciones String sqlcondiciones; sqlcondiciones = ""; DateTime fechaDesde; DateTime fechaHasta; if (DateTime.TryParse(txtFechaDesde.Text, out fechaDesde) && DateTime.TryParse(txtFechaHasta.Text, out fechaHasta)) { sqlcondiciones += " AND (bug.fecha_alta>=" + fechaDesde + " AND bug.fecha_alta<=" + fechaHasta + ") "; } if (!string.IsNullOrEmpty(cboMarcas.Text)) { var marca = cboMarcas.SelectedValue.ToString(); sqlcondiciones += " AND (producto.id_marca=" + marca + ") "; } //sin usar parametros (concatenando condiciones) IList <Producto> listadoProductos = productoService.ConsultarProductosConFiltrosCondiciones(sqlcondiciones); //Asigno a la grilla la lista de objetos bug dgvProductos.DataSource = listadoProductos; if (dgvProductos.Rows.Count == 0) { MessageBox.Show("No se encontraron coincidencias para el/los filtros ingresados", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information); } }