小弟初学,在C#.net中,用dropdownlist控件做了一个点一下省名称出来对应这个省的所有市,但是运行后发现无论点哪个省,出来的都是第一个市.比如我点了北京,出来市也是北京,然后我点广东,出来的市名称还是北京没变,都不知道错在哪里,代码如下,麻烦各位帮忙看看.数据库建得没有问题,然后省(dropdownlist)里属性AutoPostBack设置成true.
if (!IsPostBack)
{  //建立连接
SqlConnection con=DB.createConnection();
con.Open();
//绑定省
SqlCommand cmd=new SqlCommand("select * from province",con);
SqlDataReader sdr=cmd.ExecuteReader();
this.ddlprovince.DataSource=sdr;
this.ddlprovince.DataTextField="proName";
this.ddlprovince.DataValueField="proID";
this.ddlprovince.DataBind();
sdr.Close();
//绑定市
SqlCommand cmdcity=new SqlCommand("select * from city where proID="+this.ddlprovince.SelectedValue,con);
sdr=cmdcity.ExecuteReader();
this.ddlcity.DataSource=sdr;
this.ddlcity.DataTextField="cityName";
this.ddlcity.DataValueField="cityID";
this.ddlcity.DataBind();
sdr.Close();
//关闭连接
con.Close();
}

解决方案 »

  1.   

    早ddlprovince的selectindexchanged事件中写
    SqlConnection con=DB.createConnection();
    con.Open(); //绑定市
    SqlCommand cmdcity=new SqlCommand("select * from city where proID="+this.ddlprovince.SelectedValue,con);
    sdr=cmdcity.ExecuteReader();
    this.ddlcity.DataSource=sdr;
    this.ddlcity.DataTextField="cityName";
    this.ddlcity.DataValueField="cityID";
    this.ddlcity.DataBind();
    sdr.Close();
    //关闭连接
    con.Close();
      

  2.   

    //绑定市
    SqlCommand cmdcity=new SqlCommand("select * from city where proID="+this.ddlprovince.SelectedValue,con);
    sdr=cmdcity.ExecuteReader();
    this.ddlcity.DataSource=sdr;
    this.ddlcity.DataTextField="cityName";
    this.ddlcity.DataValueField="cityID";
    this.ddlcity.DataBind();
    sdr.Close();
    //关闭连接
    ------------
    把绑定市放到,省的selectchange事件里