Kadov Posted June 22, 2016 at 02:03 PM Report #597368 Posted June 22, 2016 at 02:03 PM (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 June 22, 2016 at 02:05 PM by Kadov
Kadov Posted July 20, 2016 at 01:54 PM Author Report #597734 Posted July 20, 2016 at 01:54 PM 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.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now