做层次,你只要把某节点作为查询条件得到的结果,加到该节点的nodes if (treeView1.SelectedNode != null) { //用选择个节点做父项查询。得到的结果 TreeNode MyNode = treeView1.SelectedNode; //把结果循环入该node MyNode.Nodes.Add(""); } If Not TreeView1.SelectedNode Is Nothing Then Dim mynode As TreeNode = TreeView1.SelectedNode '把结果循环入该node MyNode.Nodes.Add(""); End If
应该就是你想要的!
那么我就知道该生成多少个实例(做多少个for循环)但是我不知道有多少层 也就是我不知道该用多少个循环 以下是一个我已经知道有的多少个层次的 代码如下。为了方便期间 我做了一个可以得到dataTable的方法 (getTable(SQL语句) 返回查询结果的表)
表的结构如下表名terpsplb
----------------------------------------------------
类别id | 类别名称 | 上级节点名称 | 节点级别 |
----------------------------------------------------
节点级别 比如 根节点的级别为0 根节点的下级节点的级别为1 System.Windows.Forms.TreeNode node=new TreeNode("根节点"); string SQL="select * from terpsplb where 节点级别=1";
System.Data.DataTable dt1=getdata.getTable(SQL);
System.Windows.Forms.TreeNode nd1; for(int i=0;i<dt1.Rows.Count;i++)
{
nd1=new TreeNode(dt1.Rows[i]["节点名称"].ToString());
string SQL1="select * from terpsplb where 上级节点名称='"+ dt1.Rows[i]["节点名称"].ToString()+"'";
System.Data.DataTable dt2=getdata.getTable(SQL1);
TreeNode nd2;
for(int j=0;j<dt2.Rows.Count;j++)
{
nd2=new TreeNode(dt2.Rows[j]["节点名称"].ToString());
nd1.Nodes.Add(nd2);
}
node.Nodes.Add(nd1);
}
treeView1.Nodes.Add(node);
if (treeView1.SelectedNode != null)
{
//用选择个节点做父项查询。得到的结果
TreeNode MyNode = treeView1.SelectedNode;
//把结果循环入该node
MyNode.Nodes.Add("");
}
If Not TreeView1.SelectedNode Is Nothing Then
Dim mynode As TreeNode = TreeView1.SelectedNode
'把结果循环入该node
MyNode.Nodes.Add("");
End If
但是我现在不知道有多少层节点 就不知道有多少For循环啊