zoukankan      html  css  js  c++  java
  • 绑定省市到treeview 递归加载 递归删除

    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;
     
    namespace OperateExcel
    {
        public partial class 递归加载省市到treeView上 : Form
        {
            public 递归加载省市到treeView上()
            {
                InitializeComponent();
            }
            //动态加载
            private void btnLoad_Click(object sender, EventArgs e)
            {
                
                treeView1.Nodes.Clear();
                List<ProvinceEntity> list = GetListByPId(0);
                LoadInfo(treeView1.Nodes, list);
            }
     
            private void LoadInfo(TreeNodeCollection treeNodeCollection, List<ProvinceEntity> list)
            {
                foreach (var item in list)
                {
                    TreeNode node1=treeNodeCollection.Add(item.PName);
                    node1.Tag = item.Id;
                    List<ProvinceEntity> mlist = GetListByPId(item.Id);
                    LoadInfo(node1.Nodes, mlist);
                }
            }
     
     
            public List<ProvinceEntity> GetListByPId(int pid)
            {
                List<ProvinceEntity> plist = new List<ProvinceEntity>();
                string sql="select * from Base_Province where ParentId=@pid";
                using (SqlDataReader reader = SqlHelper.ExecuteReader(sql, CommandType.Text, new SqlParameter("@pid", pid)))
                {
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            ProvinceEntity pro = new ProvinceEntity();
                            pro.Id=reader.GetInt32(0);
                            pro.PName=reader.GetString(2);
                            pro.PId=reader.GetInt32(1);
                            plist.Add(pro);
                        }
                    }
                }
     
                return plist;
            }
     
            //动态删除
            private void btnDelete_Click(object sender, EventArgs e)
            {
                if (this.treeView1.SelectedNode != null)
                {
                    int areaId = (int)treeView1.SelectedNode.Tag;
                    DeleteNodeById(areaId);
                    treeView1.SelectedNode.Remove();
     
                }
                else
                {
                    MessageBox.Show("请选择节点");
                }
            }
     
            public void DeleteNodeById(int areaId)
            {
                List<ProvinceEntity> list = GetListByPId(areaId);
                foreach (var item in list)
                {
                    DeleteNodeById(item.Id);
                }
                string sql = "delete from Base_Province where Id=@id";
                SqlHelper.ExecuteNoQuery(sql,CommandType.Text,new SqlParameter("@id",areaId));
            }
        }

    }

  • 相关阅读:
    Putty·Network error:Software caused connection abort
    VSCode·搭建Java开发环境
    MSSQL·将一对多的数据合并为以指定分隔符的数据
    技能Get·Windows10将任何格式文件固定到开始屏幕
    MSSQL·查询TSQL语句执行时间的三种方法
    Javac·编码GBK的不可映射字符
    傅里叶变换、拉氏变换、z变换的含义
    宏、内联函数和普通函数的区别
    OpenGL中创建GLUT菜单
    在PC安裝Android系統+軟體
  • 原文地址:https://www.cnblogs.com/jiayue360/p/3166965.html
Copyright © 2011-2022 走看看