Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Kadov

Pesquisa dentro da ComboBox

Mensagens Recomendadas

Kadov

Olá, meus caros!

Me deparei com um pequeno problema. Eu utilizo um banco de dados SQL Server para puxar as informações necessárias para preencher uma combobox. Eu gostaria de saber como filtrar os itens a partir da digitação na própria combobox.

Sendo mais claro: Ao usuário começar a digitar na combobox um determinado nome, ela mostraria as opções que "batem" de acordo com o que ele digitou. (Ao deixar em branco, a combobox exibiria todos os itens importados).

É como se fosse um "DataGridView" disfarçado de combobox.

Eu já tentei comando FindStringExact mas não obtive sucesso.

O que fazer?

Editado por Kadov

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Kadov

Tentei, tentei e não obtive sucesso. Mas acho que estou quase lá...

Utilizei o seguinte código ao alterar o texto da combobox:

private void cbox_nomeobrigacao_TextChanged(object sender, EventArgs e)
 {
	 sqlconn = new SqlConnection(sqlconnstring);
	 try
	 {
		 sqlconn.Open();
		 sql = "select NOME,CODENOME from CODENOME";
		 da = new SqlDataAdapter(sql, sqlconnstring);
		 dt = new DataTable();
		 da.Fill(dt);
		 sqlconn.Close();
		 DataView dv1 = new DataView(dt);
		 dv1.RowFilter = "NOME like '%" + cbox_nomeobrigacao.Text + "%'";
		 cbox_nomeobrigacao.DataSource = dv1;
		 cbox_nomeobrigacao.ValueMember = "CODENOME";
		 cbox_nomeobrigacao.DisplayMember = "NOME";
		 cbox_nomeobrigacao.Refresh();
	 }
	 catch (SqlException sqle)
	 {
		 MessageBox.Show("Falha ao efetuar a conexão. Erro: " + sqle);
	 }

 }

O problema agora é outro... Ao tentar alterar o texto da combobox, ele se autopreenche com todos os dados do banco de dados. (Como se tivesse fazendo um fill completo sem o filtro).

Se eu colocar um textbox para servir de parametro como filtro, funciona. Ou seja, ao digitar algo na textbox e daí filtrar os itens na combobox.

(Colocando a função no "TextChanged" da textBox1)

Alterarando essa parte do código:

		 dv1.RowFilter = "NOME like '%" + cbox_nomeobrigacao.Text + "%'";

para:

		 dv1.RowFilter = "NOME like '%" + textBox1.Text + "%'";

Alguém pode me dar um help? Como eu faço para que não precise da textbox. Queria deixar tudo na combobox.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.