前台界面:

        

后台代码:

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. roscpp源码阅读

    roscpp doxgen 这只是我摘取的一些主要代码 node_handle.cpp //NodeHandle的构造函数 void NodeHandle::construct(const std:: ...

  2. c#中的类型转换

    Parse类型转换 Parse()函数 int.double都能调用Parse()函数,Parse(string str);如果转换成功就成功,失败就会抛出一个异常; TryParse()函数 相应地 ...

  3. hdu 5719 BestCoder 2nd Anniversary B Arrange 简单计数问题

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5719 题意:一个数列为1~N的排列,给定mn[1...n]和mx[1...n],问有符合的排列数为多少 ...

  4. unpipc.h&unpipc.c

    unpipc.h #ifndef _UNPIPC_H #define _UNPIPC_H #include <stdio.h> #include <unistd.h> #inc ...

  5. WPF-控件-编辑圆角TextBox

    使用模板 代码如下: <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xm ...

  6. ES5中的有9个Array方法

    Array.prototype.indexOf Array.prototype.lastIndexOf Array.prototype.every Array.prototype.some Array ...

  7. windows server 2008 下安装openmeetings 2.2.0

    经过两天的痛苦经历,终于完成了openmeetings的安装部署.其实步骤都很简单,只是网上的资料都是英文的,而且很多教程都是针对openmeeting之前的版本,导致我在部署的时候走了很多弯路.网上 ...

  8. php输出错误屏蔽的函数

    /** * 设置默认值方法 * @param mult $data * @param string $key key值 * @param string $default 默认值 */ public s ...

  9. Tesla为什么要公开专利

    这是今天在网上看到Tesla公司的专利墙图片,还是比较有视觉冲击力的,正好可以转来当配图. 业界先锋Tesla日前惊世骇俗地公开电动汽车专利,赢得如潮好评:不过大家都知道,对于西方科技公司,专利历来是 ...

  10. Codeforces Round #327 (Div. 1) B. Chip 'n Dale Rescue Rangers 二分

    题目链接: 题目 B. Chip 'n Dale Rescue Rangers time limit per test:1 second memory limit per test:256 megab ...