Jump to content

Recommended Posts

Posted (edited)

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?

Edited by Kadov
  • 4 weeks later...
Posted

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.

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.