none
filtrando resultados no gridview por text box RRS feed

  • Pergunta

  • ola pessoal boa tarde hoje venho por meio deste poste pedir a melhor forma de fazer um filtro de informações em um gridview 

    eu tentei dessa forma 

    o código este e meu método pra carregar o gridview cos as tuplas do banco

    string conn = "Server=localhost;Database=sgoconsultorio;Uid=root;Pwd=224466;";
            string sql = "SELECT * FROM usuario";
            MySqlConnection mysqlconn = null;
            MySqlCommand mysqlquery = null;

    public void carregadados() { mysqlconn = new MySqlConnection(conn); mysqlquery = new MySqlCommand(sql, mysqlconn); try { MySqlDataAdapter adapter = new MySqlDataAdapter(mysqlquery); DataTable dtFuncionario = new DataTable(); adapter.Fill(dtFuncionario); dgFuncionarios.DataSource = dtFuncionario; } catch(MySqlException ex) { MessageBox.Show("erro!" + ex); } }

     este o código que estou tentando fazer pra filtrar os dados por meio do evento TextChanged

    tentei adaptar atravez deste post: ///social.msdn.microsoft.com/Forums/pt-BR/ef7e489b-0335-4e29-9e71-3533549d6f76/pesquisa-no-datagridview-com-textbox?forum=vscsharppt

    Sem Sucesso mas se alguém puder me ajudar estou a utilizar c# com visual estúdio 2015  e o mysqlnd 5.0.11

    muito obrigado desde já 

    este sql SELECT * FROM EU VOU MUDAR PRA USAR AS BOAS PRATICAS E NAO SOBRECARREGAR O BANCO 



    • Editado draw4soft segunda-feira, 11 de abril de 2016 17:04 adicionar informaçoes pertinentes
    segunda-feira, 11 de abril de 2016 17:01

Respostas

  • Bom galera minha Função esta funcionando 100% agora vou postar o código completo 

    namespace SGO_Consultorio.Views
    {
        public partial class frm_usuconsulta : Form
        {
            string conn = "Server=localhost;Database=sgoconsultorio;Uid=root;Pwd=224466;";
            string sql = "SELECT * FROM usuario";
            MySqlConnection mysqlconn = null;
            MySqlCommand mysqlquery = null;
    
    
            public frm_usuconsulta()
            {
                InitializeComponent();
                carregadados();
            }
            public void carregadados()
            {
                mysqlconn = new MySqlConnection(conn);
                mysqlquery = new MySqlCommand(sql, mysqlconn);
    
                try
                {
                    MySqlDataAdapter adapter = new MySqlDataAdapter(mysqlquery);
                    DataTable dtFuncionario = new DataTable();
                    adapter.Fill(dtFuncionario);
                    dgFuncionarios.DataSource = dtFuncionario; 
                }
                catch(MySqlException ex)
                {
    
                    MessageBox.Show("erro!" + ex);
                }
            }
    
            private void txtPesquisar_TextChanged(object sender, EventArgs e)
            {
                mysqlconn = new MySqlConnection(conn);
                mysqlquery = new MySqlCommand(sql, mysqlconn);
                mysqlconn.Open();
                DataTable dt = new DataTable();
                MySqlDataAdapter da = new MySqlDataAdapter(mysqlquery);
                da.Fill(dt);
                DataView dv = new DataView(dt);
                dv.RowFilter = "palavrachave like'" + txtPesquisar.Text + "%'";
                dgFuncionarios.DataSource = dv;
                mysqlconn.Close();
            }
        }
    }

    • Marcado como Resposta Marcos SJ terça-feira, 12 de abril de 2016 11:29
    segunda-feira, 11 de abril de 2016 22:15

Todas as Respostas

  • Qual foi a dificuldade que você encontrou e não conseguiu executar?
    segunda-feira, 11 de abril de 2016 17:10
  • Boa tarde,

    Onde você está tentando aplicar o filtro? Que erro dá ao executar o código acima?

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    segunda-feira, 11 de abril de 2016 17:17
  • Boa tarde.

    Você pode seguir utilizando o evento "text changed" do controle "textbox" e atualizar sua query "select * from usuario" incluindo uma condição (where) com uma instrução "like" para filtrar e carregar o "gridview" novamente.


    protected void TextBox1_TextChanged(object sender, EventArgs e)
    {
    var filtro = TextBox1.Text;

    ....

    string sql = string.Format("SELECT * FROM usuario WHERE nome LIKE %{0}%", filtro);

    ....
    }

    Danilo Chicale

    Não esqueça de marcar se a resposta foi útil! =D


    • Editado Danilo Chicale segunda-feira, 11 de abril de 2016 18:11 Formatação da assinatura
    segunda-feira, 11 de abril de 2016 18:11
  • <blockquote><p>Boa tarde,</p><p>Onde você está tentando aplicar o filtro? Que erro dá ao executar o código acima?</p><p>Att,</p><hr class="sig" /><p>Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.</p></blockquote><br />

    <blockquote>Qual foi a dificuldade que você encontrou e não conseguiu executar?<br /></blockquote><br />

    o codigo acima funciona perfeitamente ele popula o gridview com dados da talela usuario eu preciso de um metodo para filtrar os dados do gridview atrabez de um textbox para facilar a busca por um usuário especifico 

    segunda-feira, 11 de abril de 2016 21:03
  • Boa tarde.

    Você pode seguir utilizando o evento "text changed" do controle "textbox" e atualizar sua query "select * from usuario" incluindo uma condição (where) com uma instrução "like" para filtrar e carregar o "gridview" novamente.


    protected void TextBox1_TextChanged(object sender, EventArgs e)
    {
    var filtro = TextBox1.Text;

    ....

    string sql = string.Format("SELECT * FROM usuario WHERE nome LIKE %{0}%", filtro);

    ....
    }

    Danilo Chicale

    Não esqueça de marcar se a resposta foi útil! =D


    assim que ficaria o código

      private void txtPesquisar_TextChanged(object sender, EventArgs e)
            {
                var filtro = txtPesquisar.Text;
                string sql = string.Format("SELECT * FROM usuario WHERE palavrachave LIKE %{0}%", filtro);
                mysqlconn = new MySqlConnection(conn);
                mysqlquery = new MySqlCommand(sql, mysqlconn);
    
                try
                {
                    MySqlDataAdapter adapter = new MySqlDataAdapter(mysqlquery);
                    DataTable dtFuncionario = new DataTable();
                    adapter.Fill(dtFuncionario);
                    dgFuncionarios.DataSource = dtFuncionario;
                }
                catch (MySqlException ex)
                {
    
                    MessageBox.Show("erro!" + ex);
                }
               
    
    
            }

     
    • Editado draw4soft segunda-feira, 11 de abril de 2016 21:09
    segunda-feira, 11 de abril de 2016 21:08
  • Bom galera minha Função esta funcionando 100% agora vou postar o código completo 

    namespace SGO_Consultorio.Views
    {
        public partial class frm_usuconsulta : Form
        {
            string conn = "Server=localhost;Database=sgoconsultorio;Uid=root;Pwd=224466;";
            string sql = "SELECT * FROM usuario";
            MySqlConnection mysqlconn = null;
            MySqlCommand mysqlquery = null;
    
    
            public frm_usuconsulta()
            {
                InitializeComponent();
                carregadados();
            }
            public void carregadados()
            {
                mysqlconn = new MySqlConnection(conn);
                mysqlquery = new MySqlCommand(sql, mysqlconn);
    
                try
                {
                    MySqlDataAdapter adapter = new MySqlDataAdapter(mysqlquery);
                    DataTable dtFuncionario = new DataTable();
                    adapter.Fill(dtFuncionario);
                    dgFuncionarios.DataSource = dtFuncionario; 
                }
                catch(MySqlException ex)
                {
    
                    MessageBox.Show("erro!" + ex);
                }
            }
    
            private void txtPesquisar_TextChanged(object sender, EventArgs e)
            {
                mysqlconn = new MySqlConnection(conn);
                mysqlquery = new MySqlCommand(sql, mysqlconn);
                mysqlconn.Open();
                DataTable dt = new DataTable();
                MySqlDataAdapter da = new MySqlDataAdapter(mysqlquery);
                da.Fill(dt);
                DataView dv = new DataView(dt);
                dv.RowFilter = "palavrachave like'" + txtPesquisar.Text + "%'";
                dgFuncionarios.DataSource = dv;
                mysqlconn.Close();
            }
        }
    }

    • Marcado como Resposta Marcos SJ terça-feira, 12 de abril de 2016 11:29
    segunda-feira, 11 de abril de 2016 22:15