日期:2014-05-18  浏览次数:20665 次

求助:数据表遍历到Treeview
在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


------解决方案--------------------
//显示节点
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);
}
}
}
呵呵,自己看