TreeView-demo

本文介绍了一个使用 C# 和 Windows Forms 实现的数据绑定应用案例,具体展示了如何从数据库中读取部门和用户信息,并将其组织成树形结构进行展示。此外,还实现了当选择不同节点时,能在 DataGridView 控件中显示对应用户的详细信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using test1.ItemBase;      //添加引用
using System.Data.SqlClient;

namespace test1
{
    public partial class treeTest : Form
    {
        public treeTest()
        {
            InitializeComponent();
        }
        SqlBaseClass G_SqlClass = new SqlBaseClass();  //声明数据库操作类的对象
        private void InitTree()
        {
            string str = "select * from T_DEPARTMENT";
            DataSet ds = G_SqlClass.GetDs(str);
            foreach (DataRow row in ds.Tables[0].Rows)
            {
                TreeNode depNode = new TreeNode(row["DEPARTMENTNAME"].ToString());
                string userStr = "select * from T_USER where DEPARTMENTID="+row["ID"];
                DataSet ds1 = G_SqlClass.GetDs(userStr);
                foreach (DataRow row1 in ds1.Tables[0].Rows)
                {
                    TreeNode userNode = new TreeNode();
                    userNode.Name = row1["ID"].ToString();
                    userNode.Text = row1["USERNAME"].ToString();
                    depNode.Nodes.Add(userNode);
                }
                treeView1.Nodes.Add(depNode);
            }
        }

        private void treeTest_Load(object sender, EventArgs e)
        {
            InitTree();
        }

        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            TreeNode node = e.Node;
            if (node.Level == 1)
            {
                this.dataGridView1.DataSource = this.getUserInfo(int.Parse(node.Name)).Tables[0];
            }
            if (node.Level == 0)
            {
                this.dataGridView1.DataSource = null;
            }
        }

        private DataSet getUserInfo(int userId)
        {
            string str = "select * from T_USER left join T_DEPARTMENT on T_USER.DEPARTMENTID=T_DEPARTMENT.ID where T_USER.ID=" + userId;
            DataSet ds = G_SqlClass.GetDs(str);
            //string name = ds.Tables[0].Rows[0][1].ToString();
            //MessageBox.Show(name);
            return ds;
        }
    }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值