首页 新闻 会员 周边

传智播客.NET第五季ADO.NET中省市案例的数据累积的一点问题,求指教

0
悬赏园豆:20 [已解决问题] 解决于 2012-11-09 12:42

第一次选择的是重庆,效果如图

第二次选的是江苏省,显示效果如上图,但是出现了一个问题,就是之前的数据没有清除。

第三次选的是浙江省,显示效果如上,之前的数据依然在。。。实际应该是选择某个省第二个下拉框显示的是这个省的全部城市。。。。

数据库中有两个表分别为city,promary:city表的字段为cityID、cityName、proID ;

promary表的字段为proID、proName

 

具体的程序如下,请大家帮忙下,谢谢

 1 namespace Province_City
 2 {
 3     public partial class Form1 : Form
 4     {
 5         public Form1()
 6         {
 7             InitializeComponent();
 8         }
 9 
10         private void Form1_Load(object sender, EventArgs e)
11         {
12            
13            string connStr= ConfigurationManager.ConnectionStrings["Connstr"].ConnectionString;
14 
15             using (SqlConnection conn = new SqlConnection(connStr))
16             {
17                 conn.Open();
18                 using (SqlCommand cmd = conn.CreateCommand())
19                 {
20                     cmd.CommandText = "select * from promary";
21                     using (SqlDataReader dataReader = cmd.ExecuteReader())
22                     {
23                         while (dataReader.Read())
24                         {
25                             ProvinceItem item = new ProvinceItem();
26                             item.Id = dataReader.GetInt32(dataReader.GetOrdinal("proId"));
27                             item.Name = dataReader.GetString(dataReader.GetOrdinal("proName"));
28                             comProvince.Items.Add(item);
29 
30                         }
31                     }
32                 }
33             }
34         }
35 
36 
37 
38         private void comProvince_SelectedIndexChanged(object sender, EventArgs e)
39         {
40 
41             ProvinceItem item = (ProvinceItem)comProvince.SelectedItem;
42             int proID = item.Id;
43 
44             
45            
46             string connStr = ConfigurationManager.ConnectionStrings["Connstr"].ConnectionString;
47         //using (SqlConnection conn = new SqlConnection(@"Data Source=HP-PC;Initial Catalog=DBPromary;User ID=sa;Password=123"))
48             using (SqlConnection conn = new SqlConnection(connStr))
49             {
50                 conn.Open();
51                 
52                 using (SqlCommand cmd = conn.CreateCommand())
53                 {
54                     cmd.CommandText = "select * from city where proID=@proID";
55                     cmd.Parameters.Add(new SqlParameter("proID", proID));
56                     using (SqlDataReader dataReader = cmd.ExecuteReader())
57                     {
58                         while (dataReader.Read())
59                         {
60                             string cityName = dataReader.GetString(dataReader.GetOrdinal("cityName"));
61                             comCity.Items.Add(cityName);
62                            
63                         }
64                     }
65                 }
66           }
67 
68         }
69 
70         class ProvinceItem
71         {
72             public string Name { get; set; }
73             public int Id { get; set; }
74         }
75 
76      
77     }
78 }
DanielAND的主页 DanielAND | 初学一级 | 园豆:132
提问于:2012-11-08 21:31
< >
分享
最佳答案
1
private void comProvince_SelectedIndexChanged(object sender, EventArgs e)
{
comCity.Items.Clear();
....
 
收获园豆:15
向往-SONG | 老鸟四级 |园豆:4853 | 2012-11-08 22:48

对滴  就是这条语句没有加进去    一开始我也在想clear方法怎么调用的     谢谢您啊,我是菜鸟,希望能多向您讨教讨教~~~~~可以加一下您的Q么,谢谢

DanielAND | 园豆:132 (初学一级) | 2012-11-09 12:29

@余_xlxl: 

没什么,慢慢就会了,我对winform不熟,有问题可以在园子里发消息给我

向往-SONG | 园豆:4853 (老鸟四级) | 2012-11-09 12:40

@向往-SONG: 好滴     谢谢啊,您是做.NET开发的么 

DanielAND | 园豆:132 (初学一级) | 2012-11-09 12:43

@余_xlxl: 

嗯,是的。

向往-SONG | 园豆:4853 (老鸟四级) | 2012-11-09 13:04
其他回答(5)
1

记不清楚了。重新绑定数据之前使用comProvince.Items.Clear(); 或者

comProvince.DataSource=null;   需要把之前的数据源 清空。
收获园豆:3
wenthink | 园豆:417 (菜鸟二级) | 2012-11-08 22:51
comCity.Items.Clear();
comCity.DataSource=null;
支持(0) 反对(0) wenthink | 园豆:417 (菜鸟二级) | 2012-11-08 22:54

对滴   只需要在private void comProvince_SelectedIndexChanged(object sender, EventArgs e)中加一条
comCity.Items.Clear();就可以了,谢谢您,我学到了清空数据的知识。。。。。我想问一下

comCity.DataSource=null;是什么意思的呢,一般怎么用呢  我是菜鸟,请见谅我这么白痴的问  呵呵呵    谢谢您啊

 

支持(0) 反对(0) DanielAND | 园豆:132 (初学一级) | 2012-11-09 12:31
0

在填充数据之前,clear一下

收获园豆:1
chenping2008 | 园豆:9836 (大侠五级) | 2012-11-09 09:00
0

在填充数据之前,clear一下

收获园豆:1
jason2013 | 园豆:1998 (小虾三级) | 2012-11-09 09:04
0

跟那个选择月份一样  得先clear一下  否则一直堆积

楼主把思路理清 出问题debug一下 很好就找到问题出处的

oppoic | 园豆:770 (小虾三级) | 2012-11-09 09:30
0

楼上的正解

三歪猫 | 园豆:225 (菜鸟二级) | 2012-11-09 10:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册