fill combobox with data from another combobox



  • I have a City table where it has the fields nameCity, IdEstado, IdPais, besides the tables State and Parents. I'm doing a c# application where I use 3 combobox. When selecting the first combobox (cboCity) and choosing a record, I want you to be selected at the same time, the respective states and parents of the cbobox state and CboPais. Remembering that the State and Country combobox are already filled with the respective values of the tables (State and Parents)



  • In the properties of the cboCity field, select the radius, where it allows the configuration of the events. Hence, click 2 x in SelectedIndexChanged item

    inserir a descrição da imagem aqui

    It will open this code window:

    private void cboCidade_SelectedIndexChanged(object sender, EventArgs e)
        {
    
    }
    

    Inside it, you enter the SQL query to fill the cboState and CboPais combos based on the selected value of cboCity

    Here an example:

    private void cboCidade_SelectedIndexChanged(object sender, EventArgs e)
    {

        SqlConnection Conexao = new SqlConnection
        {
            ConnectionString = @"sua string de conexao"
        };
        Conexao.Open();
    
        //Aqui você trará os Ids de Estado e País, para você preencher os respectivos combos
        string ConsultaSql = string.Concat("SELECT idEstado, idPais FROM Cidade WHERE nomeCidade = '", cboCidade.Text, "';");
        SqlCommand ComandoSQl = new SqlCommand(ConsultaSql, ConexaoSql);
        SqlDataReader LeitorDataReader = ComandoSQl.ExecuteReader();
    
        int estado = 0;
        int pais = 0;
    
        while (LeitorDataReader.Read())
        {
            estado = Convert.ToInt32(LeitorDataReader["idEstado"].ToString());
            pais = Convert.ToInt32(LeitorDataReader["idPais"].ToString());
        }
        LeitorDataReader.Close();
    
        //Aqui você irá preencher o combo estado
        ConsultaSql = string.Concat("SELECT nomeEstado FROM Estado WHERE idEstado = ", estado, ";");
        ComandoSQl = new SqlCommand(ConsultaSql, ConexaoSql);
        LeitorDataReader = ComandoSQl.ExecuteReader();
        cboEstado.Items.Clear();
        cboEstado.Text = string.Empty;
    
        while (LeitorDataReader.Read())
        {
            cboEstado.Items.Add(LeitorDataReader["nomeEstado"].ToString());
        }
        LeitorDataReader.Close();
    
        //Aqui você irá preencher o combo pais
        ConsultaSql = string.Concat("SELECT nomePais FROM Pais WHERE idPais = ", pais, ";");
        ComandoSQl = new SqlCommand(ConsultaSql, ConexaoSql);
        LeitorDataReader = ComandoSQl.ExecuteReader();
        cboPais.Items.Clear();
        cboPais.Text = string.Empty;
    
        while (LeitorDataReader.Read())
        {
            cboEstado.Items.Add(LeitorDataReader["nomePais"].ToString());
        }
        LeitorDataReader.Close();
    
        ConexaoMySql.Close();
    
    }
    

    Only one observation:
    Adapt SQL objects according to your bank (SQL Server, MySql, etc)




Suggested Topics

  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2