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";
        }
實現二級聯動、三級聯動

完成地區選擇


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM