我需要在TREEVIEW中增加3级节点。 目前结果添加到二级时,出现不能添加第三级的问题,需解决。我的代码如下:
    TreeNode fNode = new TreeNode();
         fNode.Text = "我的电脑";
this.treeView1.Nodes.Add(fNode); TreeNode sNode = new TreeNode();
DataRowCollection drcr = myDataSet.Tables["JDDM"].Rows;
foreach (DataRow dr in drcr)
{
int k=0;
sNode.Nodes.Add(dr[0].ToString());
this.treeView1.Nodes[1].Nodes.Add(sNode); string nodew = sNode.Nodes[k].Text;
myDataAdapter.SelectCommand = new OleDbCommand("SELECT DISTINCT JFDM FROM ZD WHERE JDDM = 'nodew'",myConn);
myDataAdapter.Fill(myDataSet,"JFDM");
DataRowCollection drcc = myDataSet.Tables["JFDM"].Rows;
foreach( DataRow drcd in drcc)
{
sNode.Nodes[k].Nodes.Add(drcd[0].ToString());
}
k++;
}
到最后一个 “JFDM” ,里面无数据,我认为可能是数据查询处了问题,但是检查了数据库,没问题。求教!急用! 

解决方案 »

  1.   

    你应该是用递归的方法,
        private void showtreeintreeview(int id, TreeNode node) 

        DataSet ds = new DataSet(); 
        adapter.Fill(ds); 
        DataView dv = ds.Tables[0].DefaultView; 
        dv.RowFilter = "pid=" + id.ToString(); 
        TreeNode item; 

    foreach (DataRowView dr in dv) 

    if (node == null) 

    item = new TreeNode(); 
    TreeView1.Nodes.Add(item); 
    showtreeintreeview(Convert.ToInt32(dr["id"]), item);

    else 
    {  
    item = new TreeNode(); 
    node.Nodes.Add(item); 
    showtreeintreeview(Convert.ToInt32(dr["id"]), item); 
    }
      

  2.   

    上面的问题,发现在执行数据库查询的时候  "SELECT DISTINCT JFDM FROM ZD WHERE JDDM = 'nodew'" 这句无法返回正确的结果,nodew为string.  我将nodew直接使用数据库的值来替换 "026"
    ,则能返回正确结果。
       请教这句在这里如何写???还是其他地方有问题??