Exemple #1
0
        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 (bug.fecha_alta>=" + "Convert(DateTime," + "'" + desdeSinHora + "'" + ",103)" + " AND bug.fecha_alta<=" + "Convert(DateTime," + "'" + hastaSinHora + "'" + ",103)" + ") ";
                parametros.Add("fechaDesde", txtFechaDesde.Text);
                parametros.Add("fechaHasta", txtFechaHasta.Text);
            }


            if (!string.IsNullOrEmpty(cboEstados.Text))
            {
                var idEstado = cboEstados.SelectedValue.ToString();
                sqlcondiciones += " AND (bug.id_estado=" + idEstado + ") ";
                parametros.Add("idEstado", idEstado);
            }

            if (!string.IsNullOrEmpty(cboAsignadoA.Text))
            {
                var asignadoA = cboAsignadoA.SelectedValue.ToString();
                sqlcondiciones += " AND (bug.id_usuario_asignado=" + asignadoA + ") ";
                parametros.Add("idUsuarioAsignado", asignadoA);
            }

            if (!string.IsNullOrEmpty(cboPrioridades.Text))
            {
                var prioridad = cboPrioridades.SelectedValue.ToString();
                sqlcondiciones += " AND (bug.id_prioridad=" + prioridad + ") ";
                parametros.Add("idPrioridad", prioridad);
            }

            if (!string.IsNullOrEmpty(cboCriticidades.Text))
            {
                var criticidad = cboCriticidades.SelectedValue.ToString();
                sqlcondiciones += " AND (bug.id_criticidad=" + criticidad + ") ";
                parametros.Add("idCriticidad", criticidad);
            }

            if (!string.IsNullOrEmpty(cboProductos.Text))
            {
                var producto = cboProductos.SelectedValue.ToString();
                sqlcondiciones += " AND (bug.id_producto=" + producto + ") ";
                parametros.Add("idProducto", producto);
            }

            //usando parametros
            // IList<Bug> listadoBugs = bugService.ConsultarBugsConFiltros(parametros);

            //sin usar parametros (concatenando condiciones)
            IList <Bug> listadoBugs = bugService.ConsultarBugsConFiltrosCondiciones(sqlcondiciones);

            //Asigno a la grilla la lista de objetos bug
            dgvBugs.DataSource = listadoBugs;

            if (dgvBugs.Rows.Count == 0)
            {
                MessageBox.Show("No se encontraron coincidencias para el/los filtros ingresados", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }