c# winform结合数据库动态生成treeview的父节点和子节点方法和思路

博客展示了数据库操作代码,包括获取tb_foodtype和tb_food表的所有数据,还给出了添加父节点和子节点的方法。通过SQL语句查询数据,使用DataTable存储,利用递归绑定子区域,实现了数据的树形结构展示。

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

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

 

转载于:https://www.cnblogs.com/zhou0818/p/10942493.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值