C#treeview遞歸操作數據庫淺析
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) //處理主節(jié)點
- { 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 //處理子節(jié)點
- { 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、調用實現
調用方法 AddTree(0, (TreeNode)null); //0就是處于最高級其f_front=0,數據庫里1為頂層那就是1,這個隨便 最好+一句 tvDept.ExpandAll(); 展開所有項。
C# treeview遞歸的數據庫操作我們就向你介紹到這里,希望對你了解和學習C# treeview遞歸有所幫助。
【編輯推薦】