⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 动态创建treeview从数据库中读取节点,分节点数据
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

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

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

        //搜索结点
        private void ShowNodes()
        {
            SqlConnection con = new SqlConnection("Data Source=localhost;Initial Catalog=ll;Integrated Security=True");
            con.Open();
            string sql = "select * from Menu";
            SqlDataAdapter sda = new SqlDataAdapter(sql, con);
            DataSet ds = new DataSet();
            sda.Fill(ds, "Menu");
            DataTable dt = ds.Tables["Menu"];
            string rank1 = "rank=0";
            DataRow[] rows = dt.Select(rank1);

            foreach (DataRow tdr1 in rows)
            {//添加根结点

                //this.treeView1.Nodes.Add(dr["name"].ToString());
                TreeNode tn1 = new TreeNode();
                tn1.Tag = tdr1["ID"];
                tn1.Text = tdr1["name"].ToString();
                this.treeView1.Nodes.Add(tn1);

                string rank2 ="rank=1 and parentID=" + Convert.ToInt32(tdr1["ID"].ToString());
                DataRow[] dr2 = dt.Select(rank2);
                foreach (DataRow tdr2 in dr2)
                { //添加2级结点


                    TreeNode tn2 = new TreeNode();
                    tn2.Tag = tdr2["ID"];
                    tn2.Text = tdr2["name"].ToString();
                    tn1.Nodes.Add(tn2);

                    string rank3 ="rank=2 and parentID=" + Convert.ToInt32(tdr2["ID"].ToString());
                    DataRow[] dr3 = dt.Select(rank3);
                    foreach (DataRow tdr3 in dr3)
                    {//添加3级结点


                        TreeNode tn3 = new TreeNode();
                        tn3.Tag = tdr3["ID"];
                        tn3.Text = tdr3["name"].ToString();
                        tn2.Nodes.Add(tn3);
                    }
                }



            }

        }



        private void treeView1_Click(object sender, EventArgs e)
        {
          
        }
        private void add(object sender, EventArgs e)
        {


        }

        private void contextMenu1_Popup(object sender, EventArgs e)
        {
            contextMenu1.MenuItems.Clear();
            contextMenu1.MenuItems.Add("增加", new EventHandler(this.add));
        }

        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            this.treeView1.ContextMenu = this.contextMenu1;
        }

        private void menuItem1_Click(object sender, EventArgs e)
        {
            //删除
            SqlConnection con = new SqlConnection("Data Source=localhost;Initial Catalog=ll;Integrated Security=True");
            string delsql = "delete from Menu where ID=" + Convert.ToInt32(this.treeView1.SelectedNode.Tag);
            con.Open();
            SqlCommand cmd = new SqlCommand(delsql, con);
            cmd.ExecuteNonQuery();
           // this.treeView1.Refresh();
            //treeView1.Nodes .eEndUpdate();
            this.treeView1.Nodes.Clear();
            ShowNodes();
        }

        private void menuItem2_Click(object sender, EventArgs e)
        {
            //增加
            TreeNode tn = new TreeNode();
            tn.Text = "default";
            tn.BeginEdit();
            //menuItem3_Click();
            this.treeView1.SelectedNode.Nodes.Add(tn);
            this.treeView1.SelectedNode.Expand();

            SqlConnection con = new SqlConnection("Data Source=localhost;Initial Catalog=ll;Integrated Security=True");
            con.Open();
            string ranksql="select rank From Menu where ID="+Convert.ToInt32(this.treeView1.SelectedNode.Tag);
            SqlCommand rankcmd=new SqlCommand(ranksql,con);
            int rank=Convert.ToInt32(rankcmd.ExecuteScalar())+1;
            string intsql = "Insert into Menu values("+rank+","+Convert.ToInt32(this.treeView1.SelectedNode.Tag)+",'"+tn.Text.ToString()+"')";
            
            SqlCommand cmd = new SqlCommand(intsql, con);
            cmd.ExecuteNonQuery();
            
        }

        private void menuItem3_Click(object sender, EventArgs e)
        {
            //修改

            this.treeView1.SelectedNode.BeginEdit();
            
        }

        private void treeView1_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
        {
            //开始修改
            try
            {
                if (treeView1.SelectedNode.Text.ToString() != e.Label.ToString())
                {
                    SqlConnection con = new SqlConnection("Data Source=localhost;Initial Catalog=ll;Integrated Security=True");
                    string delsql = "Update Menu SET name='" + e.Label.ToString() + "'  where ID=" + Convert.ToInt32(this.treeView1.SelectedNode.Tag);
                    con.Open();
                    SqlCommand cmd = new SqlCommand(delsql, con);
                    cmd.ExecuteNonQuery();
                }
            }
            catch (NullReferenceException)
            {
            }
        }
    }
}
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -