我在第一个组合框里的SelectedValueChange 事件里设计,用了数据集,根据第一个组合框的所选的值,写了一个SQL 语句,然后查询, 返回第二个组合框的选项值(去重复的)。但是,第一次使用第一个组合框室,第二个组合框列出了正确的值,但是改变第一个值后,第二个组合框的值增加了对应的值,但以前那个值还在里面!!  你是不是自己使用数据绑定?
第一个选择框改变后,先清除第二个框中的东西,再查询,然后绑定,可以解决你的问题
推荐不要用直接的绑定

解决方案 »

  1.   


    重新设置 第二个组合框之前:  cbo2.Items.Clear(); //先清空存在的项目。
      

  2.   


    /// <summary>
    /// 国家改变时,更新目的城市列表
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void cboCountry_SelectedIndexChanged(object sender, System.EventArgs e)
    {
    if ( cboCountry.SelectedItem == null ||  cboCountry.Value == null) return;
           string sql = null;
           sql = "Select * from city where countryCode ='" + cboCountry.Value + "'";
           
           DataTable dtb = (查出的数据);
           cboCity.Items.Clear();
           cboCity.DataSource = dtb;
           cboCity.ValueMember = "cityCode";
           cboCity.DisplayMember = "CityName";

    }
      

  3.   

    答上面三位:
     我按 :
         cboCity.Items.Clear();
           cboCity.DataSource = dtb;
           cboCity.ValueMember = "cityCode";
           cboCity.DisplayMember = "CityName";
    这样做后,第二次选择 国家 里的选项 就会 报错 : 在设置DataSource 属性后就不能改变 Items 属性!!!
      怎么回事啊?  急切等待.......
      

  4.   

    附带问一下: 怎样知道 一个DataTable 实例它有多少行,多少列啊?