Combobox 下拉框显示地区信息

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

  • 导入数据表

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

  • 需求:

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

    • Combobox 下拉框显示地区信息
    • 通过 AreaCode 找到 父节点(ParentCode )= AreaCode 等级为 2,3 的数据
  • 遇到的问题:

  • 用了工具类SqlHelper

  • combobox 的几个属性(重点)

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

    • Combobox 下拉框显示地区信息
  • 上代码

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());
        }

       

    }
}

上一篇:C/C++ Qt 数据库与ComBox多级联动


下一篇:easyui的来下框combobox