请问c#里面是怎样把多个来自相同或不同表的列填充到treeview的呢?我用过for语句循环,可是实现不了。不知道是什么问题了。我现在又表1,里面有id,oarentid,rootid,姓名,工号这几列。其中id为自增列,oarentid,rootid为空。表2有id,oarentid,rootid,工号这几列,其中id为自增列,oarentid,rootid为空。我现在想把工号,姓名与科室三列分别填充到treeview,请问怎样实现呢?。大家可以详细的说说做法吗?

解决方案 »

  1.   

    TreeNode.Name是你能看到的内容。
    TreeNode.Tag可以用来放置你的对象。如果要在一个节点上实现“我现在想把工号,姓名与科室三列分别填充到treeview,请问怎样实现呢”比较困难,或者是不合理。
    非要如此,建议使用DevExpress.....TreeListView控件。
      

  2.   

    将两个表连接起来查询到数据
    然后将每行的“工号”+“-”+“姓名”+“-”+“科室”显示在tree的text上
    然后把id设置在tree的tag上比如  工号:123
          姓名:张三
          科室:财务室
          id:1
    这样
    TreeNode node=new TreeNode ();
    node.text="123-张三-财务室";
    node.tag=1;treeview1.Nodes.Add(node);
      

  3.   

    绑三个treeview
    —姓名 
    —工号 
    —科室各绑定一个。不明折LZ为什么实现这样的效果,而且要用treeview来实现 
      

  4.   

    .net 的TreeView中,在DetailView中,显示在第一列以外的列,是Item.SubItems[]成员,使用前可能需要先添加。
      

  5.   

    楼上有位是正解。先在数据库中进行组合查询,然后写道treeview中;还可以网上下载treelistview控件,比较美观。
      

  6.   

    这是我的一个练习程序,你看着修改吧        //在TreeView控件中显示课程表
            private void FillDirectoryTree()
            { 
                //一个连接类对象,可用SqlConnection实例替代
                mySQL.Open("(local)\\SQL2005", "eleclcourses", "csdn", "csdn");
                //返回一个DataSet对象
                DepartmentDS = mySQL.GetDataSet("select * from Departments", "departments");
                //
                int myCount = DepartmentDS.Tables["departments"].Rows.Count;
                //
                mySQL.Close();            //添加节点
                for (int i = 0; i < myCount; i++)
                {
                    string DepartmentName = DepartmentDS.Tables["departments"].Rows[i][1].ToString();
                    int DepartmentID = int.Parse(DepartmentDS.Tables["departments"].Rows[i][0].ToString());
                    TreeNode CRoot = new TreeNode(DepartmentName);
    //directoryTree是一个treeView控件
                    directoryTree.Nodes.Add(CRoot);
                    AddDirectories(CRoot, DepartmentID);
                } //end for
            } //end method of FillDirectoryTree        private void AddDirectories(TreeNode node, int departmentid)
            {
                //
                mySQL.Open("(local)\\SQL2005", "eleclcourses", "csdn", "csdn");
                DataSet ds = new DataSet();
                string strsqltemp = "select * from Courses where departmentID =" + departmentid.ToString();
                ds = mySQL.GetDataSet(strsqltemp,"courses");
                int myCount = ds.Tables["courses"].Rows.Count;
                           for (int i = 0; i < myCount; i++)
                {
                    string CourseName = ds.Tables["courses"].Rows[i][1].ToString();
                    node.Nodes.Add(new TreeNode(CourseName));
                }
                mySQL.Close();
            } //end method of AddDirectorise