ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Combobox 下拉框显示地区信息

2022-01-01 20:03:20  阅读:227  来源: 互联网

标签:areaCode Combobox void System 信息 cmbCity using 下拉框 SelectedValue


使用下拉框控件(combobox)显示 省,市,县

  • 导入数据表

链接: https://pan.baidu.com/s/1QCzRMfUc-iv4EYYIAwtJbQ?pwd=p3n7 提取码: p3n7 复制这段内容后打开百度网盘手机App,操作更方便哦

  • 需求:

    • 通过 combobox 显示信息,选中省的时,市和县 显示相应数据
  • 思路:

    • image
    • 通过 AreaCode 找到 父节点(ParentCode )= AreaCode 等级为 2,3 的数据
  • 遇到的问题:

  • 用了工具类SqlHelper

  • combobox 的几个属性(重点)

    • DisplayMember 展示的信息
    • ValueMember 值
    • SelectedValue 获取选中的值;
  • 最终效果:

    • image
  • 上代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Common;

namespace regionZhanshi1230A
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            initAddData();
            
        }

        /// <summary>
        /// 显示 省 下拉框中的信息
        /// </summary>
        public void showProindce()
        {
            cmbProvince.DataSource = SqlHelper.ExecuteDataTable("select * from dbo.SysArea where Level = 1");

            //要显示在下拉框中的内容
            // 文本框内容
            cmbProvince.DisplayMember = "AreaName";
            // 当前区域编号信息
            cmbProvince.ValueMember = "AreaCode";
        }

        //初始化加载信息
        public void initAddData()
        {
            showProindce();
            inCodeByRegion(cmbProvince.SelectedValue.ToString());
            inCodeByCounty(cmbCity.SelectedValue.ToString());
        }


        /// <summary>
        /// 通过 省的编号,该省所辖区的信息
        /// </summary>
        /// <param name="code"></param>
        private void inCodeByRegion(String code)
        {
            if (code != "")
            {
                int areaCode = Convert.ToInt32(code);
                string sql = "select * from dbo.SysArea where Level = 2 and ParentCode =  @areaCode";
                SqlParameter parameter = new SqlParameter("@areaCode", areaCode);
                cmbCity.DataSource = SqlHelper.ExecuteDataTable(sql, parameter);
                cmbCity.DisplayMember = "AreaName";
                cmbCity.ValueMember = "AreaCode";
            }
        }

        /// <summary>
        /// 通过编号 找到 区下面素有县
        /// </summary>
        /// <param name="code"></param>
        private void inCodeByCounty(String code)
        {
            if (code != "")
            {
                int areaCode = Convert.ToInt32(code);
                string sql = "select * from dbo.SysArea where Level = 3 and ParentCode =  @areaCode";
                SqlParameter parameter = new SqlParameter("@areaCode", areaCode);
                cmbCounty.DataSource = SqlHelper.ExecuteDataTable(sql, parameter);
                cmbCounty.DisplayMember = "AreaName";
                cmbCounty.ValueMember = "AreaCode";
            }
        }

        //选择省时 区和县 也跟着修改
        private void cmbProvince_SelectionChangeCommitted(object sender, EventArgs e)
        {
            inCodeByRegion(cmbProvince.SelectedValue.ToString());
            inCodeByCounty(cmbCity.SelectedValue.ToString());
        }

        // 选择区时 县 跟着修改
        private void cmbCity_SelectionChangeCommitted(object sender, EventArgs e)
        {
            inCodeByCounty(cmbCity.SelectedValue.ToString());
        }

       

    }
}

标签:areaCode,Combobox,void,System,信息,cmbCity,using,下拉框,SelectedValue
来源: https://www.cnblogs.com/pinkguy/p/15755976.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有