protected void Page_Load(object sender, EventArgs e)
        {            using (SqlConnection con = new SqlConnection("server=.;database=pro_city;uid=sa;pwd=sa;"))
            {
                con.Open();
                using (SqlCommand cmd = con.CreateCommand())
                {
                    cmd.CommandText = "select * from tb_province";
                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            ProvinceItem item = new ProvinceItem();
                            item.Id = reader.GetInt32(reader.GetOrdinal("pro_id"));
                            item.Name = reader.GetString(reader.GetOrdinal("provinceName"));
                            ddlProvince.Items.Add(item.ToString());
                                                   }
                    }
                }            }        }
protected void ddlProvince_SelectedIndexChanged(object sender, EventArgs e)
        {
            ddlCity.Items.Clear();
            ProvinceItem item = (ProvinceItem)ddlCity.SelectedItem;
 
            using (SqlConnection con = new SqlConnection("server=.;database=pro_city;uid=sa;pwd=sa;"))
            {
                con.Open();
                using (SqlCommand cmd = con.CreateCommand())
                {
                    cmd.CommandText = "select * from tb_city where pro_id=@proid";
                    cmd.Parameters.Add(new SqlParameter("proid", pro_id));
                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            string cityName = reader.GetString(reader.GetOrdinal("cityName"));
                            ddlCity.Items.Add(cityName);                        }
                    }
                }            }        }
        class ProvinceItem
        {
            public string Name { get; set; }
            public int Id { get; set; }           
            public override string ToString()
            {
                return Name;
            }        }

解决方案 »

  1.   

    Page_Load里的是选择省的,没有问题,但是ddlProvince_SelectedIndexChanged里选择市的有问题,提示无法将“System.Web.UI.WebControls.ListItem”转换为“Pro_city.Default.ProvinceItem”。错误的代码行提示在 ProvinceItem item = (ProvinceItem)ddlCity.SelectedItem;
     请问怎么改呢
      

  2.   

    =》ProvinceItem item = new ProvinceItem() { Id = int.Parse(ddlCity.SelectedItem.Value), Name = dlCity.SelectedItem.Text };
      

  3.   

    按照楼上的写法,我改成了
    protected void ddlProvince_SelectedIndexChanged(object sender, EventArgs e)
            {
                ddlCity.Items.Clear();
                //ProvinceItem item = (ProvinceItem)ddlCity.SelectedItem;
                ProvinceItem item = new ProvinceItem() { Id = int.Parse(ddlCity.SelectedItem.Value), Name = ddlCity.SelectedItem.Text };
                int pro_id = item.Id;
     
                using (SqlConnection con = new SqlConnection("server=.;database=pro_city;uid=sa;pwd=sa;"))
                {
                    con.Open();
                    using (SqlCommand cmd = con.CreateCommand())
                    {
                        cmd.CommandText = "select * from tb_city where pro_id=@proid";
                        cmd.Parameters.Add(new SqlParameter("proid", pro_id));
                        using (SqlDataReader reader = cmd.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                string cityName = reader.GetString(reader.GetOrdinal("cityName"));
                                ddlCity.Items.Add(cityName);                        }
                        }
                    }            }        }调试的时候是没有出错了,可以运行,但是市的下拉列表框没有内容显示出来?什么原因呢?请高手指教
      

  4.   

    第5季ADO.Net\【传智播客.Net培训—ADO.Net】11案例手机号码归属地看看这个
      

  5.   

    这个我也看过了,它是用winform的,我用的是asp.net的,转过来的话会有问题