前台界面:

        

后台代码:

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. Laravel 5 基础(四)- Blade 简介

    在多个页面中我们可能包含相同的内容,像是文件头,链接的css或者js等.我们可以利用布局文件完成这个功能. 让我们新建一个布局文件,例如 views/layout.blade.php <!doc ...

  2. How to using x++ creating Vendors [AX2012]

    .//Create party for the vendor public void createParty(VendorRequestCreate _vendorRequestCreate) { ; ...

  3. js中的数组

    上网查了一下,js中的数组包含的内容还真不少.先给出两个学习的链接: w3school链接:http://www.w3school.com.cn/js/js_obj_array.asp 博客园链接:h ...

  4. require.js入门指南(二)

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  5. c#使用easyhook库进行API钩取

    目标:使calc程序输入的数自动加1 (当别人使用时,总会得不到正确的结果,哈哈) 编写注入程序 ————————————————————————————————— class Program中的方法 ...

  6. linux 进程控制笔记

    进程创建 普通函数调用完成后,最多返回(return)一次,但fork/vfork会返回二次,一次返回给父进程,一次返回给子进程 父进程的返回值为子进程的进程ID,子进程的返回值为0 1.pid_t ...

  7. 写一个EF的CodeFirst的Demo

    写一个EF的CodeFirst的Demo 今天打算写一个关于EF的CodeFirs的一个小Demo.先略说一个EF的三种与数据库,怎么说,叫映射么,好吧,那就这么叫吧,就是一个是ModelFirst就 ...

  8. 百度地图API使用

    1.引用js脚本 <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&am ...

  9. mysql memory

    mysql memory engine 创建: mysql> create table mt engine = memory select * from information_schema.t ...

  10. 使用XFire+Spring构建Web Service(一)——helloWorld篇

    转自:http://www.blogjava.net/amigoxie/archive/2007/09/26/148207.html原文出处:http://tech.it168.com/j/2007- ...