一分心灵的宁静

在滚滚红尘,繁杂人世里,能够保持一分心灵的宁静,随时回到自己的内心深处,细细品味生命的奥妙,无疑是一种修身养性的人生境界

导航

从Access读取树结构

Posted on 2006-05-26 10:13  有缘无份  阅读(443)  评论(0编辑  收藏  举报
 1private void BuildTree1()
 2        {
 3            string sql = string.Empty;
 4            sql = "SELECT Class_Name, Class_ID, AutoColor_ID FROM Class_Info";
 5            OleDbConnection cn = Common.Common.GetConnection;
 6            OleDbDataAdapter da = new OleDbDataAdapter(sql, cn);
 7            DataSet ds = Common.Common.GetDataSet(sql, "Class_Info");
 8            DataTable dt = ds.Tables[0];
 9            int tbRows = dt.Rows.Count;
10
11
12            int i = 0;
13            int j = 0;
14            string ParentID = string.Empty;
15
16            TreeNode oTNode = new TreeNode();
17            oTNode.Text = "代码管理器";
18            Hashtable tblNodes = new Hashtable();
19            TreeNode oNode;
20            
21            TreeNode[] oNodes = new TreeNode[tbRows];
22
23            for(int k = 0; k < tbRows; k++)
24            {
25                oNode = new TreeNode();
26                oNode.Text = dt.Rows[k][0].ToString();
27                oNode.Tag = dt.Rows[k][1].ToString();
28                oNodes[i] = oNode;
29                tblNodes.Add(dt.Rows[k][1] ,i);
30                ++i;
31            }

32
33            for(int m = 0; m < tbRows; m++)
34            {
35                int iit = Convert.ToInt32(dt.Rows[m][1].ToString());
36                i = Convert.ToInt32(tblNodes[(int) iit]);
37                ParentID = dt.Rows[m][2].ToString();
38        
39                if (tblNodes[dt.Rows[m][2]] == null)
40                {
41                    j = 0;
42                }

43                else
44                {
45                    j = Convert.ToInt32(tblNodes[dt.Rows[m][2]]);
46                }

47
48                if (ParentID != string.Empty)
49                {
50                    oNodes[j].Nodes.Add(oNodes[m]);
51                }

52            }

53            
54            ///loop throught the Class table again to put the Top Nodes into TreeView
55            for(int k = 0; k < tbRows; k++)
56            {
57                i = Convert.ToInt32(tblNodes[dt.Rows[k][1]]);
58                ParentID = dt.Rows[k][2].ToString();
59                
60                if (ParentID == string.Empty)
61                {
62                    if (oNodes[i] != null)
63                    {
64                        oTNode.Nodes.Add(oNodes[i]);
65                    }

66                }

67            }

68            tvwTemplateTree.Nodes.Add(oTNode);
69        }