在Winform中想将select* from 的数据到DataReader对象然后转换成DataTable中
然后根据DataTable对象遍历到Treeview对象中……最后形成的表数据结构如下……目的是形成树状节点……
1   1   1   1
1   1   1   2 
1   2   1   1
1   2   1   2
1代表根节点 如上代表,根节点下有两个子节点、两个子节点又有子节点……平台vs 2005

解决方案 »

  1.   

            //显示节点
            private void GetProduct()
            {
                treeView1.Nodes.Clear();
                dt = db.BON_Product().Tables[0].Copy();  //获取的数据
                DataView viewProduct = new DataView(dt); //视图
                viewProduct.RowFilter = "fatherId=0";    //筛选条件,父节点  
                if (viewProduct.Count > 0)
                {
                    foreach (DataRowView myRow in viewProduct)
                    {
                        string ss = myRow["productName"].ToString().Trim();
                        TreeNode node = new TreeNode(ss);
                        node.Tag = myRow["productID"].ToString().Trim();
                        this.treeView1.Nodes.Add(node);
                        this.GetTreeNode(ss, treeView1.Nodes[0], myRow); //调用下面子节点的方法
                        treeView1.SelectedNode = treeView1.Nodes[0];
                    }
                }
            }        //获取子节点
            private void GetTreeNode(string strString, TreeNode node, DataRowView row)
            {
                string ss = string.Empty;
                dt = db.BON_Product().Tables[0].Copy();
                DataView view = new DataView(dt);
                view.RowFilter = "fatherID='" + row["productID"].ToString().Trim() + "'";
                if (view.Count > 0)
                {
                    foreach (DataRowView myRow in view)
                    {
                        ss = myRow["productName"].ToString().Trim();
                        TreeNode td = new TreeNode(ss);
                        td.Tag = myRow["productID"].ToString().Trim();
                        node.Nodes.Add(td);
                        this.GetTreeNode(ss, td, myRow);
                    }
                }
            }
    呵呵,自己看