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);
      }    
    }

  • 相关阅读:
    VMWare:vSphere6 企业版参考序列号
    nginx1.14的安装
    nginx 编译安装时的编译参数说明(不建议看)
    yum 私有仓库
    linux 修改时区
    FreeFileSync 文件同步软件(windows)
    ansible 碎记录
    vsftp配置
    centos中,tomcat项目创建文件的权限
    EXI6.0的安装(找不到网卡、找不到磁盘)
  • 原文地址:https://www.cnblogs.com/zhou0818/p/10942493.html
Copyright © 2011-2022 走看看