木生 2009-09-03
C# treeview递归操作数据库需要注意什么呢?C# treeview递归操作数据库的具体步骤是什么呢?这里我们通过具体的实现步骤来向你详细介绍相应的内容。
C# treeview递归1、建立数据库:
f_id 项目ID号 ,f_front 父ID号 ,f_name名称,f_type类型,f_layer所处层,f_order 同层的顺序号;(f_layer,f_order不要也可,这里我主要是需要同层排序才用到)
C# treeview递归2、数据库的操作
然后“select f_id,f_front,f_name,f_type from data”取得DataSet数据集dsFrame;treeview 名称设为tvDept
C# treeview递归3、写函数 构建treeveiw树形:
public void AddTree(int ParentID, TreeNode pNode) { DataView dvTree = new DataView(dtTree); //就是dtTree = dsFrame.Tables[0]; string Fstr = "[f_front] = " + ParentID; dvTree.RowFilter = Fstr; foreach(DataRowView Row in dvTree) { TreeNode Node = new TreeNode(); if (pNode == null) //处理主节点 { Node.Name = Row["f_id"].ToString(); //这里+了2个值分别到Name和Text,可随便 Node.Text = Row["f_name"].ToString(); if (Row["f_type"].ToString() == "岗位") //这个不要也可以,主要为了不同类型显示不同图标 { Node.ImageIndex = 1; Node.SelectedImageIndex=1; } else { Node.ImageIndex = 0; Node.SelectedImageIndex=0; } tvDept.Nodes.Add(Node); //加入 AddTree(Int32.Parse(Row["f_id"].ToString()), Node); //递归 } else //处理子节点 { Node.Name = Row["f_id"].ToString(); Node.Text = Row["f_name"].ToString(); if (Row["f_type"].ToString() == "岗位") { Node.ImageIndex = 1; Node.SelectedImageIndex = 1; } else { Node.ImageIndex = 0; Node.SelectedImageIndex=0; } pNode.Nodes.Add(Node); AddTree(Int32.Parse(Row["f_id"].ToString()), Node); } } }
C# treeview递归4、调用实现