数据库中的记录是这样的,根据KMDM来构造个TreeView,但运行起来很慢,谁帮帮忙,帮改下代码。
kmdm kmmc
----------------------- -------------
1001 库存现金
1002 银行存款
100201 建行
100202 美元存款经常户
100203 工行
1012 其他货币资金
101207 保函押金
10120701 建行永定路支行
10120702 浦发银行永定路支行
1013 备用金
101301 经理办公室
101302 综合计划处
101303 财务处
一级是4位二级以下是2位,表结构不能改变
foreach (DataRow dr in dsAllTable.Tables[0].Rows)
{
rootNode = new TreeNode();
rootNode.Text = dr["kmdm"].ToString() + "-" + dr["kmmc"].ToString();
rootNode.Name = dr["kmdm"].ToString();
rootNode.Tag = dr["kmdm"].ToString();
//根节点
if (dr["kmdm"].ToString().Length == 4)
{
this.treeView1.SelectedNode = null;
}
else//其他节点
{
int intIdLength = dr["kmdm"].ToString().Length;
TreeNode[] tn_temp = treeView1.Nodes.Find(dr["kmdm"].ToString().Substring(0,intIdLength-2), true); //通过kmdm查找父节点
if (tn_temp.Length > 0)
{
treeView1.SelectedNode = tn_temp[0]; //选中查找到的节点
}
}
if (this.treeView1.SelectedNode == null)
this.treeView1.Nodes.Add(rootNode);
else
this.treeView1.SelectedNode.Nodes.Add(rootNode);
}
kmdm kmmc
----------------------- -------------
1001 库存现金
1002 银行存款
100201 建行
100202 美元存款经常户
100203 工行
1012 其他货币资金
101207 保函押金
10120701 建行永定路支行
10120702 浦发银行永定路支行
1013 备用金
101301 经理办公室
101302 综合计划处
101303 财务处
一级是4位二级以下是2位,表结构不能改变
foreach (DataRow dr in dsAllTable.Tables[0].Rows)
{
rootNode = new TreeNode();
rootNode.Text = dr["kmdm"].ToString() + "-" + dr["kmmc"].ToString();
rootNode.Name = dr["kmdm"].ToString();
rootNode.Tag = dr["kmdm"].ToString();
//根节点
if (dr["kmdm"].ToString().Length == 4)
{
this.treeView1.SelectedNode = null;
}
else//其他节点
{
int intIdLength = dr["kmdm"].ToString().Length;
TreeNode[] tn_temp = treeView1.Nodes.Find(dr["kmdm"].ToString().Substring(0,intIdLength-2), true); //通过kmdm查找父节点
if (tn_temp.Length > 0)
{
treeView1.SelectedNode = tn_temp[0]; //选中查找到的节点
}
}
if (this.treeView1.SelectedNode == null)
this.treeView1.Nodes.Add(rootNode);
else
this.treeView1.SelectedNode.Nodes.Add(rootNode);
}
不是给你说过啊!!
用sql自定义函数!!