using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DataService.Model { public class zhc_fault_tree_node { public string tree_id { get; set; } public string parent_id { get; set; } public string name { get; set; } public string dsc { get; set; } public int state { get; set; } public int position { get; set; } public string logic_gate { get; set; } public IList node = new List(); public void Addchildren(zhc_fault_tree_node node) { this.node.Add(node); } ///建立树的递归方法 /// 数据源 /// 父节点 /// 节点的归属ID public static void BindTree(DataTable dtSource, zhc_fault_tree_node treeNode) { DataRow[] rows = dtSource.Select(string.Format("parent_id='{0}'", treeNode.tree_id)); foreach (DataRow row in rows) { zhc_fault_tree_node tree = new zhc_fault_tree_node(); tree.tree_id = row["tree_id"].ToString(); tree.parent_id= row["parent_id"].ToString(); tree.name = row["name"].ToString(); tree.dsc = row["dsc"].ToString(); tree.state = int.Parse(row["state"].ToString()); tree.position = int.Parse(row["position"].ToString()); tree.logic_gate = row["logic_gate"].ToString(); //递归性质,函数内调用自身函数 BindTree(dtSource, tree); //递归结束的终点条件 treeNode.node.Add(tree); } } } }