string sCity="???";
TreeNode Node1=new TreeNode() ,Node2;
this.ds11.Clear ();
Trv.Nodes.Clear ();
this.Da.Fill (ds11,"Employees");
int i;
bs=this.BindingContext[ds11,"Employees"];
DataRow row;
for(i=0;i<=ds11.Tables["Employees"].Rows.Count -1;i++ )
{
row=ds11.Tables["Employees"].Rows[i];
if (sCity!=row["City"].ToString ())
{
Node1=Trv.Nodes.Add (row["City"].ToString ());
sCity=row["City"].ToString ();
Node1.Tag =i.ToString ();
}
Node2=Node1.Nodes.Add (row["LastName"]+"."+row["FirstName"]);
Node2.Tag =i.ToString ();
}
两层树的建立,把数据按照第一层节点和主key的顺序排列;先定义一个比较字符串,设定一个
数据库中不可能有的一个数据.用它去匹配数据库中的数据,不一样就建立第一层节点.
具体分析以下:第一条肯定不一样,所以先建立一个第一层节点,然后是对应的第二层节点;
当比较字符串和数据库中取到的数据一样时,不建立第一层节点,只建立第二层节点;不一样是
才建立第一层节点.这样用一条查询语言,一次循环就可以完成了树的建立了.