zoukankan      html  css  js  c++  java
  • C# 省市县三级级联 分类: .NET 20121104 15:31 1541人阅读 评论(0) 收藏

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;
    
    namespace comback
    {
        /// <summary>
        /// 1:要添加的省可以在下面的第18行中添加,相关市、区县等添加到下面声明变量处即可。
        /// 2:然后在计数处声明相关变量以供计算。
        /// 3:然后在execute()方法的“扩展处”进行计算。
        /// 4:然后在addCity()方法中添加省下辖市
        /// 5:没然后了,直接看181行哥的留言。。。
        /// </summary>
        class District
        {
    
            private int js = 1, zj=2, sh=3;
    
            //省
            private string[] province = new string[] { "--请选择--", "江苏省", "浙江省", "上海市" };
    
            //市
            private string[] city1 = new string[] { "--请选择--", "南京市", "无锡市", "徐州市", "常州市", "苏州市", "南通市", "连云港市", "淮安市", "盐城市", "扬州市", "镇江市", "泰州市", "宿迁市" };
            private string[] city2 = new string[] { "--请选择--", "杭州市", "宁波市", "温州市", "绍兴市", "湖州市", "金华市", "衢州市", "舟山市", "台州市", "丽水市", "嘉兴市" };
    
            //江苏省区县
            private string[] c1_1 = new string[] { "--请选择--", "玄武区", "白下区", "秦淮区", "建邺区", "鼓楼区", "下关区", "浦口区", "六合区", "栖霞区", "雨花台区", "江宁区", "溧水县", "高淳县" };
            private string[] c1_2 = new string[] { "--请选择--", "崇安区", "南长区", "北塘区", "惠山区", "锡山区", "滨湖区", "江阴市", "宜兴市" };
            private string[] c1_3 = new string[] { "--请选择--", "云龙区", "鼓楼区", "贾汪区", "泉山区", "铜山区", "邳州市", "新沂市", "睢宁县", "沛 县", "丰 县" };
            private string[] c1_4 = new string[] { "--请选择--", "天宁区", "钟楼区", "新北区", "武进区", "金坛市", "溧阳市" };
            private string[] c1_5 = new string[] { "--请选择--", "吴中区", "相城区", "金阊区", "平江区", "沧浪区", "虎丘区", "常熟市", "昆山市", "张家港市", "吴江市", "太仓市" };
            private string[] c1_6 = new string[] { "--请选择--", "崇川区", "港闸区", "通州区", "海安县", "如东县", "如皋市", "海门市", "启东市" };
            private string[] c1_7 = new string[] { "--请选择--", "新浦区", "连云区", "海州区", "赣榆县", "灌云县", "东海县", "灌南县" };
            private string[] c1_8 = new string[] { "--请选择--", "清河区", "清浦区", "楚州区", "淮阴区", "金湖县", "盱眙县", "洪泽县", "涟水县" };
            private string[] c1_9 = new string[] { "--请选择--", "亭湖区", "盐都区", "大丰市", "东台市", "建湖县", "射阳县", "阜宁县", "滨海县", "响水县" };
            private string[] c1_10 = new string[] { "--请选择--", "广陵区", "维扬区", "邗江区", "宝应县", "江都市", "高邮市", "仪征市" };
            private string[] c1_11 = new string[] { "--请选择--", "京口区", "润州区", "丹徒区", "镇江新区", "句容市", "丹阳市", "扬中市" };
            private string[] c1_12 = new string[] { "--请选择--", "海陵区", "高港区", "兴化市", "靖江市", "泰兴市", "姜堰市" };
            private string[] c1_13 = new string[] { "--请选择--", "沭阳县", "泗阳县", "泗洪县", "宿豫区", "宿城区" };
    
            //浙江省区县
            private string[] c2_1 = new string[] { "--请选择--", "上城区", "下城区", "江干区", "拱墅区", "西湖区", "滨江区", "萧山区", "余杭区", "建德市", "富阳市", "临安市", "桐庐县", "淳安县" };
            private string[] c2_2 = new string[] { "--请选择--", "海曙区", "江东区", "江北区", "北仑区", "镇海区", "鄞州区", "余姚市", "慈溪市", "奉化市", "象山县", "宁海县" };
            private string[] c2_3 = new string[] { "--请选择--", "鹿城区", "瓯海区", "龙湾区", "瑞安市", "乐清市", "永嘉县", "苍南县", "平阳县", "泰顺县", "文成县", "洞头县" };
            private string[] c2_4 = new string[] { "--请选择--", "绍兴县", "诸暨市", "上虞市", "嵊州市", "新昌县", "越城区" };
            private string[] c2_5 = new string[] { "--请选择--", "吴兴区", "南浔区", "长兴县", "德清县", "安吉县" };
            private string[] c2_6 = new string[] { "--请选择--", "婺城区", "金东区", "兰溪市", "永康市", "义乌市", "东阳市", "武义县", "浦江县", "磐安县" };
            private string[] c2_7 = new string[] { "--请选择--", "柯城区", "衢江区", "江山市", "常山县", "龙游县", "开化县" };
            private string[] c2_8 = new string[] { "--请选择--", "定海区", "普陀区", "岱山县", "嵊泗县" };
            private string[] c2_9 = new string[] { "--请选择--", "椒江区", "黄岩区", "路桥区", "临海市", "温岭市", "三门县", "天台县", "仙居县", "玉环县" };
            private string[] c2_10 = new string[] { "--请选择--", "莲都区", "龙泉市", "缙云县", "青田县", "云和县", "遂昌县", "松阳县", "庆元县", "景宁畲族自治县" };
            private string[] c2_11 = new string[] { "--请选择--", "南湖区", "秀洲区", "嘉善县", "海盐县", "平湖市", "海宁市", "桐乡市" };
    
            //上海市区县
            private string[] c3 = new string[] { "--请选择--", "浦东新区", "黄浦区", "卢湾区", "徐汇区", "长宁区", "静安区", "普陀区", "闸北区", "闸北区", "虹口区", "杨浦区", "宝山区", "闵行区", "嘉定区", "松江区", "青浦区", "奉贤区", "金山区", "崇明县" };
    
            //计数
            private int Len1_1, Len1_2, Len1_3, Len1_4, Len1_5, Len1_6, Len1_7, Len1_8, Len1_9, Len1_10, Len1_11, Len1_12, Len1_13; //江苏
            private int Len2_1, Len2_2, Len2_3, Len2_4, Len2_5, Len2_6, Len2_7, Len2_8, Len2_9, Len2_10, Len2_11;                   //浙江
            private int Len3;                                                                                                       //上海
            private int js3, js4, js5, js6, js7, js8, js9, js10, js11, js12, js13;                                                  //江苏
            private int zs3, zs4, zs5, zs6, zs7, zs8, zs9, zs10, zs11, zs12, zs13;                                                  //浙江
            private int ss3;                                                                                                        //上海
            
            /// <summary>
            /// 计数
            /// </summary>
            private void excute()
            {
                //获得江苏省下辖市下面的区县数组长度
                Len1_1 = this.c1_1.Length;
                Len1_2 = this.c1_2.Length;
                Len1_3 = this.c1_3.Length;
                Len1_4 = this.c1_4.Length;
                Len1_5 = this.c1_5.Length;
                Len1_6 = this.c1_6.Length;
                Len1_7 = this.c1_7.Length;
                Len1_8 = this.c1_8.Length;
                Len1_9 = this.c1_9.Length;
                Len1_10 = this.c1_10.Length;
                Len1_11 = this.c1_11.Length;
                Len1_12 = this.c1_12.Length;
                Len1_13 = this.c1_13.Length;
    
                //获得浙江省下辖市下面的区县数组长度
                Len2_1 = this.c2_1.Length;
                Len2_2 = this.c2_2.Length;
                Len2_3 = this.c2_3.Length;
                Len2_4 = this.c2_4.Length;
                Len2_5 = this.c2_5.Length;
                Len2_6 = this.c2_6.Length;
                Len2_7 = this.c2_7.Length;
                Len2_8 = this.c2_8.Length;
                Len2_9 = this.c2_9.Length;
                Len2_10 = this.c2_10.Length;
                Len2_11 = this.c2_11.Length;
    
                //获得上海市下辖市下面的区县数组长度
                Len3 = this.c3.Length;
                
                //此处获得扩展的省下辖市下面的区县数组长度
    
    
                //江苏【计算区县数组长度】
                js3 = Len1_1 + Len1_2;
                js4 = js3 + Len1_3;
                js5 = js4 + Len1_4;
                js6 = js5 + Len1_5;
                js7 = js6 + Len1_6;
                js8 = js7 + Len1_7;
                js9 = js8 + Len1_8;
                js10 = js9 + Len1_9;
                js11 = js10 + Len1_10;
                js12 = js11 + Len1_11;
                js13 = js12 + Len1_12;
    
                //浙江
                zs3 = js13 + Len1_13;
                zs4 = zs3 + Len2_1;
                zs5 = zs4 + Len2_2;
                zs6 = zs5 + Len2_3;
                zs7 = zs6 + Len2_4;
                zs8 = zs7 + Len2_5;
                zs9 = zs8 + Len2_6;
                zs10 = zs9 + Len2_7;
                zs11 = zs10 + Len2_8;
                zs12 = zs11 + Len2_9;
                zs13 = zs12 + Len2_10;
    
                //上海
                ss3 = zs13 + Len2_11;
    
                //此处计算扩展的省数组长度,计算方法为:在上一个计算的和基础上,加上上一个数组的最后下辖市的长度,并且计算到此省下的区县数组长度-1为止。
    
            }
    
            public DataSet getDS()
            {
                //计算一些数值
                excute();
    
                DataSet locations = new DataSet("location");
    
                DataTable table = new DataTable("province");
                table.Columns.Add("id", typeof(int));
                table.Columns.Add("name", typeof(string));
                table.PrimaryKey = new DataColumn[] { table.Columns[0] };
                locations.Tables.Add(table);
                //添加省
                addProvince(table);
    
                DataTable table2 = new DataTable("state");
                table2.Columns.Add("id", typeof(int));
                table2.Columns.Add("pid", typeof(int));
                table2.Columns.Add("name", typeof(string));
                table2.PrimaryKey = new DataColumn[] { table2.Columns[0] };
                locations.Tables.Add(table2);
                //添加市
                addCity(table2);
    
                DataTable table3 = new DataTable("county");
                table3.Columns.Add("id", typeof(int));
                table3.Columns.Add("pid", typeof(int));
                table3.Columns.Add("name", typeof(string));
                table3.PrimaryKey = new DataColumn[] { table3.Columns[0] };
                locations.Tables.Add(table3);
    
                //添加江苏下辖市下面的区县
                addJS(table3);
    
                //注意下面添加的代码,没有添加14这个数字。所以如果以后扩展其他省份的话,在每个省份之间,都要在原有省份的基础上+1。
    
                //添加浙江省下辖市的区县
                addZJ(table3);
                
                //添加上海市区县
                addSH(table3);
                
                //此处添加扩展的省市下的区县。。。需要手动创建方法
    
                //设置约束
                locations.Tables["state"].Constraints.Add(new ForeignKeyConstraint(locations.Tables["province"].Columns[0], locations.Tables["state"].Columns[1]));
                locations.Tables["county"].Constraints.Add(new ForeignKeyConstraint(locations.Tables["state"].Columns[0], locations.Tables["county"].Columns[1]));
    
                //设置关系
                DataRelation relation = new DataRelation("p2s", locations.Tables["province"].Columns[0], locations.Tables["state"].Columns[1]);
                locations.Relations.Add(relation);
                relation = new DataRelation("s2c", locations.Tables["state"].Columns[0], locations.Tables["county"].Columns[1]);
                locations.Relations.Add(relation);
    
                locations.AcceptChanges();
    
                return locations;
            }
    
            /// <summary>
            ///  添加省
            /// </summary>
            private void addProvince(DataTable table)
            {
                for (int i = 0; i < province.Length; i++)
                {
                    table.Rows.Add(i, province[i]);
                }
            }
    
            /// <summary>
            /// 添加下辖市
            /// </summary>
            private void addCity(DataTable table2) 
            {
                //添加江苏省下辖市
                for (int i = 0; i < city1.Length; i++)
                {
                    table2.Rows.Add(i, js, city1[i]);
                }
                //添加浙江省下辖市
                for (int i = 0; i < city2.Length; i++)
                {
                    table2.Rows.Add(city1.Length + i, zj, city2[i]);
                }
                //添加上海市
                table2.Rows.Add(city1.Length + city2.Length + 1, sh, "上海市");
    
                //此处添加扩展的省下辖市。。
    
            }
    
            /// <summary>
            /// 添加江苏下辖市下面的区县
            /// </summary>
            /// <param name="table3"></param>
            private void addJS(DataTable table3)
            {
                for (int i = 0; i < Len1_1; i++)
                {
                    table3.Rows.Add(i, 1, c1_1[i]);
                }
                for (int i = 0; i < Len1_2; i++)
                {
                    table3.Rows.Add(Len1_1 + i, 2, c1_2[i]);
                }
                for (int i = 0; i < Len1_3; i++)
                {
                    table3.Rows.Add(js3 + i, 3, c1_3[i]);
                }
                for (int i = 0; i < Len1_4; i++)
                {
                    table3.Rows.Add(js4 + i, 4, c1_4[i]);
                }
                for (int i = 0; i < Len1_5; i++)
                {
                    table3.Rows.Add(js5 + i, 5, c1_5[i]);
                }
                for (int i = 0; i < Len1_6; i++)
                {
                    table3.Rows.Add(js6 + i, 6, c1_6[i]);
                }
                for (int i = 0; i < Len1_7; i++)
                {
                    table3.Rows.Add(js7 + i, 7, c1_7[i]);
                }
                for (int i = 0; i < Len1_8; i++)
                {
                    table3.Rows.Add(js8 + i, 8, c1_8[i]);
                }
                for (int i = 0; i < Len1_9; i++)
                {
                    table3.Rows.Add(js9 + i, 9, c1_9[i]);
                }
                for (int i = 0; i < Len1_10; i++)
                {
                    table3.Rows.Add(js10 + i, 10, c1_10[i]);
                }
                for (int i = 0; i < Len1_11; i++)
                {
                    table3.Rows.Add(js11 + i, 11, c1_11[i]);
                }
                for (int i = 0; i < Len1_12; i++)
                {
                    table3.Rows.Add(js12 + i, 12, c1_12[i]);
                }
                for (int i = 0; i < Len1_13; i++)
                {
                    table3.Rows.Add(js13 + i, 13, c1_13[i]);
                }
            }
    
            /// <summary>
            /// 添加浙江省下辖市的区县
            /// </summary>
            /// <param name="table3"></param>
            private void addZJ(DataTable table3)
            {
                for (int i = 0; i < Len2_1; i++)
                {
                    table3.Rows.Add(zs3 + i, 15, c2_1[i]);
                }
                for (int i = 0; i < Len2_2; i++)
                {
                    table3.Rows.Add(zs4 + i, 16, c2_2[i]);
                }
                for (int i = 0; i < Len2_3; i++)
                {
                    table3.Rows.Add(zs5 + i, 17, c2_3[i]);
                }
                for (int i = 0; i < Len2_4; i++)
                {
                    table3.Rows.Add(zs6 + i, 18, c2_4[i]);
                }
                for (int i = 0; i < Len2_5; i++)
                {
                    table3.Rows.Add(zs7 + i, 19, c2_5[i]);
                }
                for (int i = 0; i < Len2_6; i++)
                {
                    table3.Rows.Add(zs8 + i, 20, c2_6[i]);
                }
                for (int i = 0; i < Len2_7; i++)
                {
                    table3.Rows.Add(zs9 + i, 21, c2_7[i]);
                }
                for (int i = 0; i < Len2_8; i++)
                {
                    table3.Rows.Add(zs10 + i, 22, c2_8[i]);
                }
                for (int i = 0; i < Len2_9; i++)
                {
                    table3.Rows.Add(zs11 + i, 23, c2_9[i]);
                }
                for (int i = 0; i < Len2_10; i++)
                {
                    table3.Rows.Add(zs12 + i, 24, c2_10[i]);
                }
                for (int i = 0; i < Len2_11; i++)
                {
                    table3.Rows.Add(zs13 + i, 25, c2_11[i]);
                }
            }
    
            /// <summary>
            /// 添加上海下辖的区县
            /// </summary>
            /// <param name="table3"></param>
            private void addSH(DataTable table3)
            {
                for (int i = 0; i < Len3; i++)
                {
                    //table3.Rows.Add(zs13 + Len3 + i, city1.Length + city2.Length + 1, c3[i]);
                    table3.Rows.Add(ss3 + i, 27, c3[i]);
                }
            }
    
            //此处添加扩展的区县方法pid=29
        }
    }
    

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    thinkphp5 tp5 命名空间 报错 Namespace declaration statement has to be the very first statement in the script
    开启 php 错误 提示 php-fpm 重启 nginx 500错误 解决办法 wdlinux lnmp 一键包 php脚本无法解析执行
    js 设置 cookie 定时 弹出层 提示层 下次访问 不再显示 弹窗 getCookie setCookie setTimeout
    php 二维数组 转字符串 implode 方便 mysql in 查询
    nginx 重启 ps -ef|grep nginx kill -HUP 主进程号
    jquery bootstrap help-block input 表单 提示 帮助 信息
    jquery 倒计时 60秒 短信 验证码 js ajax 获取
    jQuery如何获取同一个类标签的所有的值 遍历
    linux下C语言文件操作相关函数
    gcc,gdb用法
  • 原文地址:https://www.cnblogs.com/configman/p/4657579.html
Copyright © 2011-2022 走看看