关闭

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

496人阅读 评论(0) 收藏 举报
分类:

【转载于】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
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:221661次
    • 积分:4476
    • 等级:
    • 排名:第6642名
    • 原创:210篇
    • 转载:121篇
    • 译文:1篇
    • 评论:11条
    最新评论