zoukankan      html  css  js  c++  java
  • C#-WinForm-三级联动

    三级联动 - 查询地区,选择省份自动显示该省份的市、区县

    有如下一个数据库

      

    一、写查询方法

    public class ChinaData
        {
            SqlConnection conn = null;
            SqlCommand cmd = null;
    
            public ChinaData()
            {
                conn = new SqlConnection("server=.;database=mydb;user=sa;pwd=123");
                cmd = conn.CreateCommand();
            }
            //查询方法 参数为父级代码
            public List<China> Select(string pcode)
            {
                List<China> lc = new List<China>();
                cmd.CommandText = "select *from ChinaStates where ParectAreaCode=@a";
                cmd.Parameters.Clear();
                cmd.Parameters.AddWithValue("@a",pcode);
                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.HasRows)
                {
                    while(dr.Read())
                    {
                        China c = new China();
                        c.AreaCode = dr["AreaCode"].ToString();
                        c.AreaName = dr["AreaName"].ToString();
                        c.ParentAreaCode = dr["ParentAreaCode"].ToString();
                        lc.Add(c);
                    }
                }
                conn.Close();
                return lc;
            }
        }
    查询方法

    二、窗体启动时自动读取数据库数据

     public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                //窗口打开时,自动查询代码0001中国下的子级数据
                //绑定省
                comboBox1.DataSource = new ChinaData().Select("0001");
                comboBox1.DisplayMember = "AreaName";
                comboBox1.ValueMember = "AreaCode";
                //绑定市
                comboBox2.DataSource = new ChinaData().Select(comboBox1.SelectedValue.ToString ());
                comboBox2.DisplayMember = "AreaName";
                comboBox2.ValueMember = "AreaCode";
                //绑定区县
                comboBox3.DataSource = new ChinaData().Select(comboBox2.SelectedValue.ToString());
                comboBox3.DisplayMember = "AreaName";
                comboBox3.ValueMember = "AreaCode";
            }
        }
    窗体启动时自动读取数据库数据

    三、实现改变选项的时候,展示子级内容

    //省选中项改变时事件
            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                //绑定市
                comboBox2.DataSource = new ChinaData().Select(comboBox1.SelectedValue.ToString());
                comboBox2.DisplayMember = "AreaName";
                comboBox2.ValueMember = "AreaCode";
            }
            //市选中项改变时事件
            private void comboBox2_SelectedIndexChanged_1(object sender, EventArgs e)
            {
                //绑定区县
                comboBox3.DataSource = new ChinaData().Select(comboBox2.SelectedValue.ToString());
                comboBox3.DisplayMember = "AreaName";
                comboBox3.ValueMember = "AreaCode";
            }
    实现二级联动、三级联动

    完成地区选择

  • 相关阅读:
    常用搜索指令
    chrome浏览器常用快捷键
    倒排文档
    hdu4570Multi-bit Trie (间隙DP)
    HTTP工作原理
    腾讯和58都市“聘请”秘诀是什么?
    Atitit。团队建设--管理最佳实践--如何留住关键人才,防止人才外流 ??
    于Eclipse传导C/C++配置方法开发(20140721新)
    通过京东淘宝的技术发展和技术演进,探索未来的技术和体系结构
    C++ Primer 学习笔记_41_STL实践与分析(15)--先来看看算法【下一个】
  • 原文地址:https://www.cnblogs.com/qq450867541/p/6175664.html
Copyright © 2011-2022 走看看