C#treeview遞歸操作數(shù)據(jù)庫淺析
C# treeview遞歸操作數(shù)據(jù)庫需要注意什么呢?C# treeview遞歸操作數(shù)據(jù)庫的具體步驟是什么呢?這里我們通過具體的實(shí)現(xiàn)步驟來向你詳細(xì)介紹相應(yīng)的內(nèi)容。
C# treeview遞歸1、建立數(shù)據(jù)庫:
f_id 項(xiàng)目ID號 ,f_front 父ID號 ,f_name名稱,f_type類型,f_layer所處層,f_order 同層的順序號;(f_layer,f_order不要也可,這里我主要是需要同層排序才用到)
C# treeview遞歸2、數(shù)據(jù)庫的操作
然后“select f_id,f_front,f_name,f_type from data”取得DataSet數(shù)據(jù)集dsFrame;treeview 名稱設(shè)為tvDept
C# treeview遞歸3、寫函數(shù) 構(gòu)建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) //處理主節(jié)點(diǎn)
- { Node.Name = Row["f_id"].ToString();
- //這里+了2個(gè)值分別到Name和Text,可隨便
- Node.Text = Row["f_name"].ToString();
- if (Row["f_type"].ToString() == "崗位")
- //這個(gè)不要也可以,主要為了不同類型顯示不同圖標(biāo) { 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 //處理子節(jié)點(diǎn)
- { 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、調(diào)用實(shí)現(xiàn)
調(diào)用方法 AddTree(0, (TreeNode)null); //0就是處于最高級其f_front=0,數(shù)據(jù)庫里1為頂層那就是1,這個(gè)隨便 最好+一句 tvDept.ExpandAll(); 展開所有項(xiàng)。
C# treeview遞歸的數(shù)據(jù)庫操作我們就向你介紹到這里,希望對你了解和學(xué)習(xí)C# treeview遞歸有所幫助。
【編輯推薦】