Usuário com melhor resposta
Busca ineligente c# e mysql

Pergunta
-
Bem, preciso de um melhoramento em minha busca, a principio ela consegue buscar os dados pelo "id" da mesma, preciso de um filtro que me de a escolha de busca por "id" ou "Nome" e que em tempo real a busca por nomes mostre os mesmos mais parecidos no datagridview!
É um trabalho do meu curso de informática, preciso de ajuda, tá dificil(BUÁÁÁ!). Ficarei grato.
Respostas
-
Pode tentar este código:
Lançar as variáveis globais
//Criar um variável global BindingSource bs = new BindingSource(); //Criar o método para listar os dados public void Listagem() { DataView dv = new DataView(); Clientes obj = new Clientes(); DataView dv = new DataView(); DataTable _dt = new DataTable(); try { _dt = obj.Pesquisar(); if (_dt.Rows.Count > 0) { dv = _dt.DefaultView; //dv.Sort = "Pes_RazaoSoc" //dv.Sort = "ContactName" bs.ResetBindings(true) ; DataGridview.DataSource = null; bs.DataSource = dv; bs.DataMember = _dt.TableName; DataGridview.DataSource = bs; bs.Sort = "Nome ASC"; DataGridview.Refresh(); } else { DataGridview.Refresh(); DataGridview.DataSource = null; } } catch (Exception ex) { MessageBox.Show("Houve um erro na Operação! " + "Tipo de Erro: " + ex.Message, "Gerente Max", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
E implemento o código no evento TextChanged do seu textbox.
private void tbBuscar_TextChanged(object sender, EventArgs e) { try { string txtstring = this.tbBuscar.Text.Trim(); bs = (BindingSource)this.dgvClienteLista.DataSource; //select = "SELECT id,nome,endereco,Convert(bigint, telefone) AS Telefone,rg,Convert(bigint, cpf) AS CPF,cnh FROM Clientes"; bs.Filter = "Convert([Id], System.String) LIKE '%" + txtstring + "%' OR [nome] LIKE '%" + txtstring + "%' OR [Endereco] LIKE '%" + txtstring + "%' OR [cnh] LIKE '%" + txtstring + "%'"; this.dgvClienteLista.DataSource = bs; } catch (Exception ex) { MessageBox.Show("Houve um erro na Operação! " + "Tipo de Erro: " + ex.Message, "Gerente Max", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
- Sugerido como Resposta Eduardo.RomeroModerator segunda-feira, 18 de maio de 2015 13:58
- Marcado como Resposta Eduardo.RomeroModerator segunda-feira, 18 de maio de 2015 13:58
Todas as Respostas
-
-
Pode tentar este código:
Lançar as variáveis globais
//Criar um variável global BindingSource bs = new BindingSource(); //Criar o método para listar os dados public void Listagem() { DataView dv = new DataView(); Clientes obj = new Clientes(); DataView dv = new DataView(); DataTable _dt = new DataTable(); try { _dt = obj.Pesquisar(); if (_dt.Rows.Count > 0) { dv = _dt.DefaultView; //dv.Sort = "Pes_RazaoSoc" //dv.Sort = "ContactName" bs.ResetBindings(true) ; DataGridview.DataSource = null; bs.DataSource = dv; bs.DataMember = _dt.TableName; DataGridview.DataSource = bs; bs.Sort = "Nome ASC"; DataGridview.Refresh(); } else { DataGridview.Refresh(); DataGridview.DataSource = null; } } catch (Exception ex) { MessageBox.Show("Houve um erro na Operação! " + "Tipo de Erro: " + ex.Message, "Gerente Max", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
E implemento o código no evento TextChanged do seu textbox.
private void tbBuscar_TextChanged(object sender, EventArgs e) { try { string txtstring = this.tbBuscar.Text.Trim(); bs = (BindingSource)this.dgvClienteLista.DataSource; //select = "SELECT id,nome,endereco,Convert(bigint, telefone) AS Telefone,rg,Convert(bigint, cpf) AS CPF,cnh FROM Clientes"; bs.Filter = "Convert([Id], System.String) LIKE '%" + txtstring + "%' OR [nome] LIKE '%" + txtstring + "%' OR [Endereco] LIKE '%" + txtstring + "%' OR [cnh] LIKE '%" + txtstring + "%'"; this.dgvClienteLista.DataSource = bs; } catch (Exception ex) { MessageBox.Show("Houve um erro na Operação! " + "Tipo de Erro: " + ex.Message, "Gerente Max", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
- Sugerido como Resposta Eduardo.RomeroModerator segunda-feira, 18 de maio de 2015 13:58
- Marcado como Resposta Eduardo.RomeroModerator segunda-feira, 18 de maio de 2015 13:58
-
-