private void btnConsultar_Click(object sender, EventArgs e)
        {
            //var strSql = "SELECT ta.id,";
            //strSql += " ta.nombre,";
            //strSql += " ta.descripcion,";
            //strSql += " ta.tipotarjeta as tipo,";
            //strSql += " t.descripcion as destipo";
            //strSql += " FROM Tarjetas as ta";
            //strSql += " INNER JOIN TiposTarjeta as t ON  ta.TipoTarjeta = t.id";
            //strSql += " WHERE ta.borrado=0";

            // 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 = "";
            int cantfiltros = 0;

            // chk para ver si el  check esta activado
            if (!chkTodos.Checked)
            {
                // Validar si el combo 'Perfiles' esta seleccionado.
                if (!string.IsNullOrEmpty(cboTipoTarjeta.Text))
                {
                    var tiposeleccionado = cboTipoTarjeta.SelectedValue.ToString();
                    sqlcondiciones += " AND (t.id =" + tiposeleccionado + ") ";
                    cantfiltros    += 1;
                }

                if (!string.IsNullOrEmpty(txtNombreTarjeta.Text))
                {
                    var nombre = txtNombreTarjeta.Text;
                    sqlcondiciones += " AND ( ta.nombre LIKE " + "'" + "%" + nombre + "%" + "'" + ") ";
                    cantfiltros    += 1;
                }
                //sin usar parametros (concatenando condiciones)
                IList <Tarjeta> listadoTarjetas = tarjService.ConsultarTarjetaConFiltrosCondiciones(sqlcondiciones);

                //Asigno a la grilla la lista de objetos bug
                dgvTarjetas.DataSource = listadoTarjetas;

                if (dgvTarjetas.Rows.Count == 0)
                {
                    if (cantfiltros > 0)
                    {
                        MessageBox.Show("No se encontraron coincidencias para el/los filtros ingresados", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
        }
        private void frmFactura_Load(object sender, EventArgs e)
        {
            InicializarFormulario();

            LlenarCombo(cboTipoFact, tipoFacturaService.ObtenerTodos(), "IdTipoFactura", "IdTipoFactura");
            LlenarCombo(cboCliente, clienteService.ObtenerTodos(), "NombreCliente", "IdCliente");
            LlenarCombo(_cboArticulo, productoService.ObtenerTodos(), "Nombre", "IdProducto");
            string condiciones = " AND ta.TipoTarjeta = 1 ";

            LlenarCombo(cboTipoTarjeta, tipService.ObtenerTodos(), "Descripcion", "IdTipo");
            LlenarCombo(cboTarjeta, tarjService.ConsultarTarjetaConFiltrosCondiciones(condiciones), "Nombre", "IdTarjeta");
            dgvDetalle.DataSource = listaFacturaDetalle;

            this.cboCliente.SelectedIndexChanged   += new System.EventHandler(this.CboCliente_SelectedIndexChanged);
            this._cboArticulo.SelectedIndexChanged += new System.EventHandler(this._cboArticulo_SelectedIndexChanged);
        }