【转载】关于TreeView和数据库如何进行绑定显示

【转载于】tech.it168.com/KnowledgeBase/Articles/0/5/8/058be1cc2a1e95f0dd1e7f9ac71f9d70.htm

需要根据一个表中的数据来显示树形目录,数据库结构如下:》》》》》》》》》》》


构件树形目录的方法如下:
 
       #region  构建TreeView
        
public bool  BuildTree(TreeView tv, DataSet ds)
        {
            tv.Nodes.Clear();
            
foreach  (DataRow dbRow  in  ds.Tables[ 0 ].Rows)
            {
                
if  (dbRow[ " FatherNumber " ].ToString()  ==   string .Empty)
                {
                    dbRow[
" FatherNumber " =  DBNull.Value;
                }
            }
            ds.Relations.Add(
" NodeRelation " , ds.Tables[ 0 ].Columns[ " TypeNumber " ], ds.Tables[ 0 ].Columns[ " FatherNumber " ],  false );
            
foreach  (DataRow dbRow  in  ds.Tables[ 0 ].Rows)
            {
                
if  (dbRow.IsNull( " FatherNumber " ))
                {
                    TreeNode newNode 
=  CreateNode(dbRow[ " TypeName " ].ToString(), dbRow[ " TypeNumber " ].ToString());
                    tv.Nodes.Add(newNode);//父节点树
                    PopulateSubTree(dbRow, newNode);//子节点树
                }
            }
            
// 展开所有节点
            tv.ExpandAll();
            
return   true ;
        }
        
private void  PopulateSubTree(DataRow dbRow, TreeNode node)
        {
            
foreach  (DataRow childRow  in  dbRow.GetChildRows( " NodeRelation " ))
            {
                      TreeNode childNode 
=  CreateNode(childRow[ " TypeName " ].ToString(), childRow[ " TypeNumber " ].ToString());
                
node.Nodes.Add(childNode);
                PopulateSubTree(childRow, childNode);
            }
        }
        
private TreeNode CreateNode(string text, string  tag)//创建节点Node
        {
            TreeNode node 
=   new  TreeNode();
            node.Text 
=  text;
            node.Tag 
=  tag;
            
return  node;
        }
                   这样调用:
SqlConnection con  =   new  SqlConnection( " server=192.168.1.192;database=AUDE_KCGL;uid=sa;pwd=; " );
            SqlDataAdapter sda 
=   new  SqlDataAdapter( " select TypeNumber,FatherNumber,TypeName from KC_ObjectType " , con);
            DataSet dsTree 
=   new  DataSet();
            sda.Fill(dsTree);
            
// 调用方法构件树形目录
            BuildTree( this .treeView1, dsTree);
                    程序运行效果:
                                           
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值