Jump to content

Filtros com BindingSource


Go to solution Solved by samesdavis,

Recommended Posts

Posted
string mFiltro = "(NM_ADV like '%" + txtbusca.Text + "%')";
mFiltro = mFiltro + "AND (NM_ADV like '%" + txtbuscaADV.Text + "%')";
mFiltro = mFiltro + "AND (NM_FRM like '%" + txtbuscaFRM.Text + "%')";
mFiltro = mFiltro + "AND (NM_TRI like '%" + txtbuscaTRI.Text + "%')";
mFiltro = mFiltro + "AND (NM_TPC like '%" + txtbuscaTPC.Text + "%')";
mFiltro = mFiltro + "AND (NM_ADM like '%" + txtbuscaADM.Text + "%')";
bs.Filter = mFiltro;

Olá pessoal,

Estou com problemas para fazer filtros com o BindingSource.

Tenho o filtro abaixo que foi montado, porém ele está funcionando
de vez em quando, tem momentos que ele não filtra da forma correta.

Por exemplo, se no momento em que eu estiver preenchendo o conteúdo 
do campo  txtbuscaADV, ele já vai filtrando correto.
Se eu preencher outro campo ele também funciona.
Mas se eu mandar limpar, era para ele trazer todos os registros na grid,
porém ele não funciona corretamente e exibe apenas alguns registros.
Então tenho de clicar em um botão de recarregar a grid para exibir todos.

Só que isso está causando transtornos e insatisfação por parte do meu cliente
e preciso de resolver este problema mas não estou conseguindo.
Alguém poderia me orientar ?
 

  • Solution
Posted

Consegui resolver com essa dica que encontrei


   

private void Filter()
    {
        var queries = new List<string>();
        //string queryFilter = "1=1"; //With this we avoid to check if there is the AND in the query

        var filterCod   = textBoxCod.Text;
        var filterArt   = textBoxArt.Text;
        var filterDescr = textBoxDesc.Text();

        if (filterCod != "")
        {
            queries.Add(String.Format("codice_prodotto LIKE '%{0}%'", filterCod));
        }

        if (filterArt != "")
        {
            queries.Add(String.Format("articolo LIKE '%{0}%'", filterArt));
        }

        if (filterDescr != "")
        {
            queries.Add(String.Format("descrizione_pt LIKE '%{0}%'", filterDescr));
        }

        if (queries.Count >= 1)
        {
            var queryFilter = String.Join(" AND ", queries);
            bSource.Filter = queryFilter;
            //dataGridView.DataSource = bSource;
        }

    }

http://codereview.stackexchange.com/questions/126096/datagridview-filter-with-bindingsource

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.