读书人

一棵扭结的树

发布时间: 2013-02-19 11:11:40 作者: rapoo

一棵纠结的树
现有数据库数据如下:
ID NAME
001 原材料
0011 塑料
00111 ABS
00112 PP
00113 AS料
0012 烫金纸
0013 油墨
00131 PPC
00132 PM
……
……
V02 铝盖
V02B V2组装件
V02C V2成品件
V02N V2内塑件类
V02N2 V2内塞类

先要将这些数据组成一棵树TreeView,树的形成规律是这样的:取ID,001为根节点,0011为属于001的子节点,而00111,00112,00113是0011的子节点。以此类推。请教如何从数据库中取数写这棵树? C#??treeview
[解决办法]
修正一下


private void Form1_Load(object sender, EventArgs e)
{
DataRow[] drs = dt.Select("len(ID)=3","ID");
foreach (DataRow dr in drs)
{
TreeNode nodeParent = tv.Nodes.Add(dr["Name"].ToString());
nodeParent.Tag = dr["ID"].ToString();
LoadNode(nodeParent, dt);
}
}
private void LoadNode(TreeNode nodeParent, DataTable dt)
{
string strPID = nodeParent.Tag.ToString();
DataRow[] drs = dt.Select(string.Format("len(ID)={0} and id like '{1}%'",strPID.Length+1,strPID) , "ID");
if (drs != null && drs.Length > 0)
{
foreach (DataRow dr in drs)
{
TreeNode node = nodeParent.Nodes.Add(dr["Name"].ToString());
node.Tag = dr["ID"].ToString();
LoadNode(node, dt);
}
}
}

读书人网 >C#

热点推荐