zoukankan      html  css  js  c++  java
  • c# winform结合数据库动态生成treeview的父节点和子节点方法和思路

    tb_food表的结构如图一:

     

    tb_foodtype表的结构如图二:

     

    //获取tb_foodtype表中的所有数据
    private void InitDataTable()
    {
      SqlConnection conn = BaseClass.DBConn.CyCon();
      SqlCommand cmd = new SqlCommand("select * from tb_foodtype", conn);
      SqlDataAdapter ada = new SqlDataAdapter(cmd);
      dt = new DataTable();
      ada.Fill(dt);
    }

    //获取tb_food表中的所有数据

    private void InitDataTable1()
    {
      SqlConnection conn = BaseClass.DBConn.CyCon();
      SqlCommand cmd = new SqlCommand("select * from tb_food", conn);
      SqlDataAdapter ada1 = new SqlDataAdapter(cmd);
       dt1 = new DataTable();
      ada1.Fill(dt1);
    }

    //添加父节点的方法
    private void BindRoot()
    {
       DataRow[] rows = dt.Select();//取根
      foreach (DataRow dRow in rows)
       {
        TreeNode rootNode = new TreeNode();
        rootNode.Tag = dRow;
        rootNode.Text = dRow["foodtype"].ToString();
        控件名.Nodes.Add(rootNode);
        BindChildAreas(rootNode);//调用添加子节点的方法
       }
    }

    //添加子节点的方法
    //递归绑定子区域
    private void BindChildAreas(TreeNode fNode)
     {
      DataRow dr = (DataRow)fNode.Tag;//父节点数据关联的数据行
       int fAreaId = (int)dr["ID"]; //父节点ID
       DataRow[] rows1 = dt1.Select("foodty ="+fAreaId);//子区域
      if (rows1.Length == 0) //递归终止,区域不包含子区域时
      {
        return;
      }
      foreach (DataRow dRow in rows1)
      {
        TreeNode node = new TreeNode();
        node.Tag = dRow;
        node.Text = dRow["foodname"].ToString();
        //添加子节点
        fNode.Nodes.Add(node);
      }    
    }

  • 相关阅读:
    什么是微服务架构?
    docker 安装 mongo he SCRAM_SHA_1 authentication mechanism requires libmongoc built with ENABLE_SSL
    好用的JsonView插件
    新建vmware虚拟机无法访问网络
    安装Docker到CentOS(YUM)
    CentOS7下安装MySQL5.7安装与配置
    mongodb 阿里云centos7安装
    JS数组
    前端基本知识
    JS算法
  • 原文地址:https://www.cnblogs.com/zhou0818/p/10942493.html
Copyright © 2011-2022 走看看