FILTRAR DADOS DIGITANDO DIRETAMENTE NO DATAGRID

KELVINBETHO 08/04/2017 19:51:31
#473176
Boa noite...

Como posso filtrar dados, digitando diretamente no grid?
Enviei um anexo pra poder entender melhor o que eu estou falando.
Conexão com o banco pode ser com dataset ou na unha mesmo.

Alguém tem algum exemplo?

Obrigado
KELVINBETHO 11/04/2017 19:15:52
#473239
Ninguém???
KERPLUNK 11/04/2017 19:50:56
#473242
Basicamente o que você quer é o mesmo que o Excel faz, certo? Pois se for, precisamos saber como você faz o preenchimento do grid.
KELVINBETHO 11/04/2017 20:01:56
#473244
Boa noite Kerplunk, no momento estou preenchendo com o seguinte código:

ConexaoRetaguarda cR = new ConexaoRetaguarda();
cR.OpenBancoRetaguarda();
string strSql = [Ô]SELECT * FROM Funcionários ORDER BY Funcionários.[Nome Funcionário][Ô];
SqlConnection con = new SqlConnection(Global.StringConexao);
SqlCommand cmd = new SqlCommand(strSql, con);
con.Open();
cmd.CommandType = CommandType.Text;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable forn = new DataTable();
da.Fill(forn);
GridFuncionarios.DataSource = forn;

Mas pode ser também: (exemplo):

// Fazendo busca no banco para incluir no Grid
usu = ConsultasSqlEnvioDal.ConsultaEnvio([Ô]SELECT CodUsuario, Usuario, Senha FROM Usuarios[Ô]);


if (usu.HasRows == false)
{
MessageBox.Show([Ô]Não existem dados cadastrados.[Ô], [Ô]...::: Erro :::... [Ô], MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}

this.gridUsuarios.Rows.Clear();

while (usu.Read())
{
this.gridUsuarios.Rows.Add(usu[[Ô]CodUsuario[Ô]].ToString(), usu[[Ô]Usuario[Ô]].ToString());
}

usu.Close();
KERPLUNK 11/04/2017 20:09:30
#473246
Bem, você está usando um DataTable para preencher seu grid, não acho uma boa idéia, mas pode ser usado. DataTable é um objeto que possui um método para busca de dados, é o método Select. O que vai ficar bastante complicado é usar uma das linhas de dados para filtros, não há uma maneira simples de fazer isso. Mas a função select, você pode buscar dados facilmente por coluna, mais ou menos assim:

((DataTable)GridFuncionarios.DataSource).Select([Ô]NOMEDACOLUNA like [ô]%[Ô] + valor + [Ô]%[ô][Ô]);

Com isso você pode buscar em qualquer coluna, qualquer valor.
KERPLUNK 11/04/2017 20:11:07
#473247
Se você começar a usar OOP, é possível criar uma [Ô]omnisearch[Ô], para buscar dados. Omnisearch, é uma caixa de texto que busca qualquer valor em qualquer coluna, mais um menos como um [Ô]mini google[Ô] para seus dados.
KELVINBETHO 11/04/2017 21:09:11
#473249
Com este exemplo é possível digitar diretamente no datagrid?
((DataTable)GridFuncionarios.DataSource).Select([Ô]NOMEDACOLUNA like [ô]%[Ô] + valor + [Ô]%[ô][Ô]);

Você tem algum exemplo com OOP nos seus vídeos?

KERPLUNK 11/04/2017 21:23:42
#473250
Todos os meus vídeos são com OOP. Uma coisa que percebi é que você entende [Ô]exemplo[Ô] como código pronto para usar. A coisa não é bem assim. Exemplo é uma idéia básica de como você pode usar algo. O que passei, é uma maneira de fazer uma procura em uma coluna específica.
KELVINBETHO 11/04/2017 22:08:34
#473251
Não sendo pronto para usar, mas mais específico, esse código que você passou é um exemplo, mas como uso ele, num textbox? direto no datagrid? Por que se for no datagrid, as colunas não ficam completas com os dados? Onde terá o campo para digitar?
Seus vídeos são todos com OOP, mas tem algum que fala sobre datagrid?
KERPLUNK 11/04/2017 22:26:12
#473253
Sugestão de uso do que passei:
Um texbox, uma dropdown com os nomes dos campos e um botão. No botão, você usa a linha que mostrei. Observe que no comando, tem um [Ô]NOMEDACOLUNA[Ô], ali você vai usar o nome da coluna selecionada no dropdown. Também tem um [Ô]valor[Ô], ali você vai colocar o que estiver na textbox.
Tem alguns vídeos que falam sobre DataGrid, mas o que é necessário entender é que todo e qualquer controle se torna claro no seu uso quando OOP está entendido. Entenda OOP e o [Ô]como usar isso[Ô] vem de lambuja.
KELVINBETHO 11/04/2017 23:14:52
#473254
Ok, entendi, vou fazer um teste aqui, obrigado!
Página 1 de 2 [11 registro(s)]
Faça seu login para responder