2个ComboBox 控件来显示省市级联最主要的是根据这个数据库来设计:
主键(自增)ID     CITYNAME   LASTLEVELID
   1              北京          0
   2              天津          0
   3              上海          0
   4              重庆          0
   5              东城区        1
   6              南开区        2
   7              徐汇区        3
   8              万州区        4  <5  东城区  1>东城区是北京的区县LASTLEVELID是1对应的是数据北京ID 1;
  下面的区也是这样。LASTLEVELID 的数字是几对应 ID几!   现在实现了省的显示:
        public void bindCityName()
        {
            string sql = "select cityname from city where lastlevelID='0'";
            DataSet ds = ConnectionUtil.getDataset(sql, "city");
            this.cmbProvince.DataSource = ds.Tables["city"].DefaultView;
            this.cmbProvince.DisplayMember = "cityname";
            this.cmbProvince.ValueMember = "cityname";
           
        }
 这个市区怎么实现了?
        private void cmbProvince_SelectedIndexChanged(object sender, EventArgs e)
        {
            //string provincess =cmbProvince.SelectedValue.ToString();
            
            //string sql = "select cityname from city where id='" + provincess + "'";
   
            //DataSet ds = ConnectionUtil.getDataset(sql, "city");
            //this.cmbCity.DataSource = ds.Tables["city"].DefaultView;            //this.cmbCity.DisplayMember = "cityname";
            //this.cmbCity.ValueMember = "cityname";
         
        }
大家帮我想想这个private void cmbProvince_SelectedIndexChanged(object sender, EventArgs e)事件怎么写了,
才能出来市了!

解决方案 »

  1.   

    void comboBox1_SelectedValueChanged(object sender, EventArgs e)
      {
      comboBox2.Items.Clear();
      DataRowView drv = (DataRowView)comboBox1.SelectedItem;
      string Id = drv.Row["id"].ToString();  }
      

  2.   

    看你的数据是树型结构数据
    你可以把ComboBox重新写成新的下拉树形控件
      

  3.   

    看你的 数据是 树型结构数据
    你把 ComboBox 重新写成新的 树形下拉控件就可以实现了 就像TREEVIEW 一样只不过在下拉框中弹出TREEVIEW
      

  4.   

    form1_load(...)
    {
    ....
    cmdp1.datasource=dt;
    cmbp1.DisplayMember="PName";
    cmbp1.ValueMember="PId";
    }
    cmbp1_selectindexchange(object sender,Eventargs e)
    {
    if(cmbp1.selectitems!=null)
    {
    cmbc2.enable=true;
    //....select*from citys where pid=cmbp1.selectitem.value;
    cmbc2.datasource=dtc;
    cmbp1.DisplayMember="CName";
    cmbp1.ValueMember="CId";
    }
    好象这样成地
    }
      

  5.   

    如果说是DataSet没有数据的话,那原因就是你在上面的数据绑定的函数里边用的是this.cmbProvince.ValueMember = "cityname";然后下面的查询语句里边用的条件是id,事实上你的SelectedValue里边的是cityname。string provincess =cmbProvince.SelectedValue.ToString();
        
    string sql = "select cityname from city where id='" + provincess + "'";
      

  6.   

    ComboBox1  控制 ComboBox2 的数据源
      

  7.   

    string[][] city = new string[][] { new string[]{ "苏州","无锡","常州" }, new string[]{"杭州","宁波","绍兴" },new string[] {"临沂","德州","菏泽" } };
            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                int index = this.comboBox1.SelectedIndex;
                for (int i = 0; i < this.comboBox1.Items.Count; i++)
                {
                    if(i == index)
                        this.comboBox2.DataSource = city[i];
                }
            }