TreeView树形结构

 

 

 

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 WindowsApplication9
{
    public partial class MainForm : Form
    {
        string username = "";//用户名
        string pwd="";//密码
        private DataTable dt;//用来定义nodetree
        DataBase.DataConnection dataconn = new WindowsApplication9.DataBase.DataConnection();
        public MainForm()
        {
            InitializeComponent();
        }
        public MainForm(string username, string pwd)
        {
            this.username = username;
            this.pwd = pwd;
            InitialDateTable();
            InitializeComponent();
        } 
        private void MainForm_Load(object sender, EventArgs e)
        {
            username_txt.Text = "用户名:"+username+"登录时间:"+DateTime.Now.ToLongDateString();
            BindRoot();
        }
        private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
        {
            LoginForm log = new LoginForm();
            log.Show();
        }
        //初始化树形图
        public void InitialDateTable()
        {
            string sql_str = "select * from XF_Channels";
            SqlConnection conn=dataconn.GetData();
            SqlCommand cmd = new SqlCommand(sql_str,conn);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            dt = new DataTable();
            da.Fill(dt);
            
        }
        int image_int = 1;
        private void BindRoot()
        {

            //treeView1.Nodes.Clear();
            ////填充treeview
            //treeView1.Nodes.Add(" 信息数据库");
            //绑定根节点

            DataRow[] rows = dt.Select("BelongToWho=0");//取根 
            foreach (DataRow dRow in rows)
            {
                TreeNode rootNode = new TreeNode("mm", 8, 0);
                rootNode.Tag = dRow;
                rootNode.Text = dRow["ChannelName"].ToString();
                treeView1.Nodes.Add(rootNode);
                --image_int;
                BindChildAreas(rootNode);
            }

        }
       
        //递归绑定子区域
        private void BindChildAreas(TreeNode fNode)
        {
       
            DataRow dr = (DataRow)fNode.Tag;//父节点数据关联的数据行
            int fAreaId = (int)dr["ChannelID"]; //父节点ID
            DataRow[] rows = dt.Select("BelongToWho=" + fAreaId);//子区域
            image_int++;
            if (rows.Length == 0)  //递归终止,区域不包含子区域时
            {
                return;
            }
            foreach (DataRow dRow in rows)
            {
                TreeNode node = new TreeNode("mm", image_int, 0); 
                node.Tag = dRow;
                node.Text = dRow["ChannelName"].ToString();

                //添加子节点
                fNode.Nodes.Add(node);
                //递归
              
                BindChildAreas(node);
                node = new TreeNode("mm", --image_int, 0); 
            }
            
        }
    }
}
View Code

 

 

转载于:https://www.cnblogs.com/songxxu/p/3292927.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值