前台界面:

        

后台代码:

namespace _04省市联动
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

private int r = 0;
        private void Form1_Load(object sender, EventArgs e)
        {
            r = 1;
            //所有省份显示到第一个下拉框中
            LoadAreaByAreaPId(0);
        }

private void LoadAreaByAreaPId(int v)
        {

List<Area> list=new List<Area>();
            list.Add(new Area() {AreaId = -1,AreaName = "---请选择---"});
            string sql = "select AreaId,AreaName from TblArea  where AreaPId="+v;
            using (SqlDataReader reader=SqlHelper.ExecuteDataReader(sql))
            {
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        Area a=new Area();
                        a.AreaId = Convert.ToInt32(reader["AreaId"]);
                        a.AreaName = reader["AreaName"].ToString();
                        list.Add(a);
                    }
                }
            }
            if (r==1)
            {
                cbPro.DataSource = list;
                cbPro.DisplayMember = "AreaName";
                cbPro.ValueMember = "AreaId";
            }
            if(r==2)
            {
                cbCity.DataSource = list;
                cbCity.DisplayMember = "AreaName";
            }

}

private void cbPro_SelectedIndexChanged(object sender, EventArgs e)
        {

#region 练习用的代码
            //if (cbPro.SelectedIndex != 0)
            //{
            //    cbCity.Items.Clear();
            //    //获取当前省份的id
            //    int id = Convert.ToInt32(cbPro.SelectedValue);
            //    string sql = "select AreaId,AreaName from TblArea where AreaPId=" + id;
            //    //List<Area> list = new List<Area>();
            //    using (SqlDataReader reader = SqlHelper.ExecuteDataReader(sql))
            //    {
            //        if (reader.HasRows)
            //        {
            //            while (reader.Read())
            //            {
            //                Area a = new Area();
            //                a.AreaId = Convert.ToInt32(reader["AreaId"]);
            //                a.AreaName = reader["AreaName"].ToString();
            //                cbCity.Items.Add(a);  //重写了Area类的ToString()方法   public override string ToString()
                                                                 //否则添加的是类的命名空间          {
                                                                                                                               return this.AreaName;
                                                                                                                        }
            //            }
            //        }
            //    }

//} 
            #endregion

#region 简化写法,使用r变量判断事件
            r = 2;
            if (cbPro.SelectedIndex != 0)
            {
                int id = Convert.ToInt32(cbPro.SelectedValue);
                LoadAreaByAreaPId(id);
            } 
            #endregion

}
    }
}

Ado.Net小练习03(省市联动)的更多相关文章

  1. 微信小程序省市联动

    最近呢刚好做了一个省市联动的功能,今天看到有人问这个怎么做,我就把我做的放上来共享一下: 首先呢,来看看效果,点击文字'点击',弹出选择窗口,点击取消或者确定(取消.确定按钮在选择框上边,截图有些不清 ...

  2. html + ashx 实现Ajax省市联动

    基本思路:1.了解数据库中省和市的表结构及关联主键 2.创建html页面及select标签 3.通过ajax向ashx(一般处理程序)发送后台请求完成联动效果 表结构: 这里,开始创建一个命为demo ...

  3. html css javascript 知识点总结 bom js 操作标签 文本 节点 表格各行变色 悬停变色 省市联动 正则

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  4. jquery省市联动,根据公司需求而写

    //author:guan //2015-05-25 //省市联动 //实用说明,页面引用如下js //<script src="../js/jquery-1.6.3.min.js&q ...

  5. Json 基于jQuery+JSON的省市联动效果

    helloweba.com 作者:月光光 时间:2012-09-12 21:57 标签: jQuery  JSON  Ajax  省市联动     省市区联动下拉效果在WEB中应用非常广泛,尤其在一些 ...

  6. AJAX案例四:省市联动

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  7. Dynamic CRM 2013学习笔记(八)过滤查找控件 (类似省市联动)

    我们经常要实现类似省市联动一样的功能,常见的就是二个查找控件,一个选择了省后,另一个市的查找控件就自动过滤了,只显示当前省下的市,而不是所有的市.当然这是最简单的,实际工作中还有更复杂的功能要通过过滤 ...

  8. [JS]以下是JS省市联动菜单代码

    以下是JS省市联动菜单代码: 代码一: <html> <head> <title></title> <script language=" ...

  9. 通过Javascript数组设计一个省市联动菜单

    通过Javascript数组设计一个省市联动菜单 使用Option内置类来完成下拉选项的创建 2.使用定时器实现一个时钟程序 3.使用PHP+JSON完成语音验证码 网址:http://yuyin.b ...

随机推荐

  1. Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程

    这篇文章主要介绍了Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程,需要的朋友可以参考下 准备篇 一.环境说明: 操作系统:Windows Server 201 ...

  2. Delphi XE5教程9:基本语法元素

    内容源自Delphi XE5 UPDATE 2官方帮助<Delphi Reference>,本人水平有限,欢迎各位高人修正相关错误!也欢迎各位加入到Delphi学习资料汉化中来,有兴趣者可 ...

  3. DRP PK 牛腩新闻发布系统

    一.JSP与ASP (1)Web服务器的支持:大多数通用的Web服务器如:Apache.Netscape和Microsoft IIS都支持JSP页面,只有微软本身的Microsoft IIS和Pers ...

  4. Error NO.2013 Lost connection to Mysql server during query

    系统:[root@hank-yoon ~]# cat /etc/redhat-release CentOS release 6.3 (Final) DB版本:mysql> select @@ve ...

  5. MySQL主从修复

    MySQL主从故障修复 测试库:192.168.1.2 主192.168.1.3 从 192.168.1.4 主 4又是2的从库192.168.1.5 从 有人修改了192.168.1.2和192.1 ...

  6. python之super()函数

    python之super()函数 python的构造器奇特, 使用魔方. 构造器内对基类对象的初始化同样也很奇特, 奇特到没有半点优雅! 在构造器中使用super(class, instance)返回 ...

  7. telnet 时代的 bbs

    人类曾经用telnet 来访问 bbs,后来有了www,web 浏览器取代了telnet Telnet协议是TCP/IP协议族中的一员 arp和ping的区别 ping也属于一个通信协议,是TCP/I ...

  8. 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。

    // test14.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...

  9. 【POJ】【2960】S-Nim

    博弈论 这题跟 BZOJ 1874 取石子游戏 差不多 先暴力求出10000以内的SG函数(利用定义来求即可) 然后每次询问直接将SG值异或起来即可…… Source Code Problem: Us ...

  10. Java多线程——<一>概述、定义任务

    一.概述 为什么使用线程?从c开始,任何一门高级语言的默认执行顺序是“按照编写的代码的顺序执行”,日常开发过程中写的业务逻辑,但凡不涉及并发的,都是让一个任务顺序执行以确保得到想要的结果.但是,当你的 ...