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

  • 相关阅读:
    记录——framework探测定位程序集与core探测定位程序集
    C# 特定框架适用特定代码
    python读取excel代码
    时间比较
    ORA 01791错误
    MongoDB.1什么是MongoDB
    Mayatis 异常之result maps collection already contains value...
    怎样做好黄焖鸡
    关于foreach
    C#之out,ref关键字
  • 原文地址:https://www.cnblogs.com/zhou0818/p/10942493.html
Copyright © 2020-2023  润新知