黑马程序员技术交流社区

标题: 省市查询问题 [打印本页]

作者: 许波    时间: 2012-10-15 11:09
标题: 省市查询问题
代码如下
  1. private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\ss.mdf;Integrated Security=True;User Instance=True"))
  4.             {
  5.                 conn.Open();
  6.                 using (SqlCommand cmd = conn.CreateCommand())
  7.                 {
  8.                     cmd.CommandText = "select * from promary";
  9.                     using (SqlDataReader dataReader = cmd.ExecuteReader())
  10.                     {
  11.                         while (dataReader.Read())
  12.                         {
  13.                             province item = new province();
  14.                             item.id = dataReader.GetInt32(dataReader.GetOrdinal("proID"));
  15.                             item.name = dataReader.GetString(dataReader.GetOrdinal("proName"));
  16.                             cmbsheng.Items.Add(item);
  17.                         }
  18.                     }
  19.                 }
  20.             }
  21.         }
复制代码
  1. class province
  2.         {
  3.             public string name { get; set; }
  4.             public int id { get; set; }
  5.         }
复制代码
  1. private void cmbsheng_SelectedIndexChanged(object sender, EventArgs e)
  2.         {
  3.             province item = (province)cmbsheng.SelectedItem;
  4.             int proID = item.id;
  5.             using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\ss.mdf;Integrated Security=True;User Instance=True"))
  6.             {
  7.                 conn.Open();
  8.                 using (SqlCommand cmd = conn.CreateCommand())
  9.                 {
  10.                     cmd.CommandText = "select * from city where proID=@proID";
  11.                     cmd.Parameters.Add(new SqlParameter("proID", proID));
  12.                     using (SqlDataReader dataReader = cmd.ExecuteReader())
  13.                     {
  14.                         while (dataReader.Read())
  15.                         {
  16.                             string cityName = dataReader.GetString(dataReader.GetOrdinal("cityName"));
  17.                             cmbshi.Items.Add(cityName);                           
  18.                         }
  19.                     }
  20.                 }
  21.             }
  22.         }
复制代码
数据库问题,就是运行后出现个问题,不明白怎么解决,

选择一个省后再选择另外一个省,市的下拉菜单没有重置,求解决...
作者: 刘俊红    时间: 2012-10-15 16:14
选择省的下拉选择改变 事件 处理程序里,也就是你给的第三坨代码的11-12行之间加上下面一句。
  1. cmbshi.Items.Clear();//清除上一次的
复制代码
祝你成功!
作者: 李辰东    时间: 2012-10-16 01:45
....坨..同上,沒有認真看視頻哦,我記得這句話特別有講過
作者: chens2865    时间: 2012-10-23 11:08
你在省选择发生变化的事件里监听一下,省列表发生变化后要先删除市列表里的旧数据,再加入新的数据。注意删的时候有个顺序问题,要从后往前删,否则会造成删得不干净的问题!希望能帮到你。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2