Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Encadeamento de combobox com datagrid view
Encadeamento de combobox com datagrid view
Boa tarde, sou novo a programar em c# e venho pedir um pouco da vossa ajuda.
Criei uma view para obter a tabela para carregar na datagridview. Com essa view também carreguei os dados da coluna que pretendo em cada combobox, como mostro no exemplo:
Aqui carrego os dados na datagridview: E carrego os dados na combobox com a mesma view e desta forma: Primeiro problema - Queria retirar os nomes repetidos que aparecem na combobox.
Segundo problema - Queria ao selecionar o tipo de produto na combobox que só aparecessem as linhas que tivessem aquele produto.
esta é a imagem que mostra os dados da combobox repetidos e a datagridview carregada com os dados: Alguém me pode ajudar?
Criei uma view para obter a tabela para carregar na datagridview. Com essa view também carreguei os dados da coluna que pretendo em cada combobox, como mostro no exemplo:
Aqui carrego os dados na datagridview: E carrego os dados na combobox com a mesma view e desta forma: Primeiro problema - Queria retirar os nomes repetidos que aparecem na combobox.
Segundo problema - Queria ao selecionar o tipo de produto na combobox que só aparecessem as linhas que tivessem aquele produto.
esta é a imagem que mostra os dados da combobox repetidos e a datagridview carregada com os dados: Alguém me pode ajudar?
Re: Encadeamento de combobox com datagrid view
Primeiro problema - Queria retirar os nomes repetidos que aparecem na combobox.
Entao crie o adapter com o SQL correto para isso.
Segundo problema - Queria ao selecionar o tipo de produto na combobox que só aparecessem as linhas que tivessem aquele produto.
Use a propriedade filter to BindingSource
Entao crie o adapter com o SQL correto para isso.
Segundo problema - Queria ao selecionar o tipo de produto na combobox que só aparecessem as linhas que tivessem aquele produto.
Use a propriedade filter to BindingSource
Re: Encadeamento de combobox com datagrid view
Boa tarde webmaster, como sou novo ainda não consegui chegar à solução.
Será que podes colocar um exemplo prático para cada uma das minhas questões?
Obrigado por me estares ajudar
Será que podes colocar um exemplo prático para cada uma das minhas questões?
Obrigado por me estares ajudar
Re: Encadeamento de combobox com datagrid view
Bom dia, a parte do carregamento das combobox e o encadeamento das duas combobox já está resolvido.
2015 Desktop e banco de dados sql
O código que utilizei foi o seguinte:
private void Form2_Load(object sender, EventArgs e)
{
SqlDataAdapter sda = new SqlDataAdapter("SELECT DISTINCT Tipo FROM ListaRequisicoes ", con);
DataTable dt = new DataTable();
sda.Fill(dt);
comboBox1.Items.Clear();
comboBox1.Items.Add("---SELECT---");
foreach(DataRow Row in dt.Rows)
{
comboBox1.Items.Add(Row["Tipo"].ToString());
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
SqlDataAdapter sda = new SqlDataAdapter("SELECT DISTINCT Requerente FROM ListaRequisicoes WHERE Tipo = '"+ comboBox1.Text +"'", con);
DataTable dt = new DataTable();
sda.Fill(dt);
comboBox2.Items.Clear();
foreach(DataRow AB in dt.Rows)
{
comboBox2.Items.Add(AB["Requerente"].ToString());
}
}
Agora falta me a segunda questão, que é colocar a tabela aparecer na datagridview e depois ao selecionar na combobox filtrar na datagridview.
Agradeço se me puderes ajudar
2015 Desktop e banco de dados sql
O código que utilizei foi o seguinte:
private void Form2_Load(object sender, EventArgs e)
{
SqlDataAdapter sda = new SqlDataAdapter("SELECT DISTINCT Tipo FROM ListaRequisicoes ", con);
DataTable dt = new DataTable();
sda.Fill(dt);
comboBox1.Items.Clear();
comboBox1.Items.Add("---SELECT---");
foreach(DataRow Row in dt.Rows)
{
comboBox1.Items.Add(Row["Tipo"].ToString());
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
SqlDataAdapter sda = new SqlDataAdapter("SELECT DISTINCT Requerente FROM ListaRequisicoes WHERE Tipo = '"+ comboBox1.Text +"'", con);
DataTable dt = new DataTable();
sda.Fill(dt);
comboBox2.Items.Clear();
foreach(DataRow AB in dt.Rows)
{
comboBox2.Items.Add(AB["Requerente"].ToString());
}
}
Agora falta me a segunda questão, que é colocar a tabela aparecer na datagridview e depois ao selecionar na combobox filtrar na datagridview.
Agradeço se me puderes ajudar
Re: Encadeamento de combobox com datagrid view
Bom dia, também já consigo colocar aparecer a tabela na datagridview e filtrar pelo que selecciono na combobox, mas o problema é que as combobox estão a repetir os nomes porque alterei a query em relação ao código que coloquei no post anterior. E outro problema, só filtra na datagridview a primeira combobox a segunda já não consigo filtrar.
vou colocar a imagem a mostrar o exemplo: O código é este:
private void Form2_Load(object sender, EventArgs e)
{
SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM ListaRequisicoes ", con);
DataTable dt = new DataTable();
sda.Fill(dt);
comboBox1.Items.Clear();
comboBox1.Items.Add("---SELECT---");
foreach(DataRow Row in dt.Rows)
{
comboBox1.Items.Add(Row["Tipo"].ToString());
}
dataGridView1.DataSource = dt;
}
//carrega a segunda combobox encadeada com a primeira combobox
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM ListaRequisicoes WHERE Tipo = '"+ comboBox1.Text +"'", con);
DataTable dt = new DataTable();
sda.Fill(dt);
comboBox2.Items.Clear();
foreach(DataRow AB in dt.Rows)
{
comboBox2.Items.Add(AB["Requerente"].ToString());
}
dataGridView1.DataSource = dt;
}
vou colocar a imagem a mostrar o exemplo: O código é este:
private void Form2_Load(object sender, EventArgs e)
{
SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM ListaRequisicoes ", con);
DataTable dt = new DataTable();
sda.Fill(dt);
comboBox1.Items.Clear();
comboBox1.Items.Add("---SELECT---");
foreach(DataRow Row in dt.Rows)
{
comboBox1.Items.Add(Row["Tipo"].ToString());
}
dataGridView1.DataSource = dt;
}
//carrega a segunda combobox encadeada com a primeira combobox
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM ListaRequisicoes WHERE Tipo = '"+ comboBox1.Text +"'", con);
DataTable dt = new DataTable();
sda.Fill(dt);
comboBox2.Items.Clear();
foreach(DataRow AB in dt.Rows)
{
comboBox2.Items.Add(AB["Requerente"].ToString());
}
dataGridView1.DataSource = dt;
}
Re: Encadeamento de combobox com datagrid view
Boa noite, ninguém consegue colocar um exemplo prático de encadear duas combobox a filtrar na tabela da datagridview?
O que eu estou a pedir está muito confuso? Estou a perguntar uma vez que não estou a receber ajuda de ninguém
O que eu estou a pedir está muito confuso? Estou a perguntar uma vez que não estou a receber ajuda de ninguém
Re: Encadeamento de combobox com datagrid view
Seja qual for o BindingSource/Adapter que estiver preenchendo o combobox, mude o SQL e adicione o DISTINCT na clausula. Isso fara ele retornar uma lista de elementos unicos.
PS: ninguem aqui eh obrigado a responder perguntas. Este eh um espaco livre para troca de ideias, duvidas e sugestoes. Todo conhecimento eh bem vindo, TODO! Quem aqui ajuda o faz de boa vontade e sem nada receber em troca, alem do reconhecimento de poder colaborar com um colega de profissao. Portanto, sejamos educados em aguardar pacientemente que alguma ajuda venha (se vier) e enquanto o fazemos, porque nao dedicar um pouco de tempo para ajudar um outro colega com uma duvida a qual voce provavelmente sabera a resposta?
PS: ninguem aqui eh obrigado a responder perguntas. Este eh um espaco livre para troca de ideias, duvidas e sugestoes. Todo conhecimento eh bem vindo, TODO! Quem aqui ajuda o faz de boa vontade e sem nada receber em troca, alem do reconhecimento de poder colaborar com um colega de profissao. Portanto, sejamos educados em aguardar pacientemente que alguma ajuda venha (se vier) e enquanto o fazemos, porque nao dedicar um pouco de tempo para ajudar um outro colega com uma duvida a qual voce provavelmente sabera a resposta?
Re: Encadeamento de combobox com datagrid view
Boa tarde, peço desculpa se fui mal educado, não foi a minha intenção. Só perguntei uma vez que a questão para a minha dúvida poderia estar confusa.
Eu sei dessa parte do distinct, o problema é que se colocar o distinct tenho de criar um novo bindingsource e depois já não filtra na datagridview, uma vez que são bindingsource diferentes.
Mais uma vez a minha intenção nunca foi ser ofensivo com ninguém, pelo contrário, estou a gostar do feedback do vosso fórum e a gostar por pertencer à vossa comunidade. Sempre que posso e descubro soluções para problemas vou colocando para ajudar colegas de profissão.
Eu sei dessa parte do distinct, o problema é que se colocar o distinct tenho de criar um novo bindingsource e depois já não filtra na datagridview, uma vez que são bindingsource diferentes.
Mais uma vez a minha intenção nunca foi ser ofensivo com ninguém, pelo contrário, estou a gostar do feedback do vosso fórum e a gostar por pertencer à vossa comunidade. Sempre que posso e descubro soluções para problemas vou colocando para ajudar colegas de profissão.