【发布时间】:2012-01-01 15:28:30
【问题描述】:
我正在尝试制作一个具有无限子组的treeView。
我可以添加我的群组,但我无法添加我的子群组。对于子组,输出显示我的组值。我的子组代码如下:我认为我的 SQL 字符串有问题,但我不知道是什么问题。
private void chilnoddoldur(DataTable dt, TreeNodeCollection treeNodeCollection)
//fill childnodes
{
foreach (DataRow dr in dt.Rows)
{
TreeNode child = new TreeNode();
child.Text = dr["kgr_ad"].ToString();
child.Value = dr["kgr_bsno"].ToString();
if (child.ChildNodes.Count > 0)
{
child.PopulateOnDemand = true;
}
child.SelectAction = TreeNodeSelectAction.SelectExpand;
child.Expand();
child.Selected = true;
treeNodeCollection.Add(child);
}
}
这是 SQL 代码:
SqlConnection conn = b.baglan();
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
conn.Open();
SqlCommand cmd = new SqlCommand("select kgr_sno,kgr_ad,kgr_bsno from kulgrp where kgr_bsno=@id", conn);
cmd.Parameters.AddWithValue("@id", kgrSno);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
kgrBsno.ChildNodes.Clear();
chilnoddoldur(dt, kgrBsno.ChildNodes);
conn.Close();
【问题讨论】:
-
一个建议:使用更具描述性的方法名称。 “
chilnoddoldur”不是很有帮助。 -
只是填充子节点的方法名。
-
codeSqlConnection conn = b.baglan(); if (conn.State == ConnectionState.Open) { conn.Close();在这里我忘了放这个代码。是的递归,但我不明白确切的错误..? } conn.Open(); SqlCommand cmd = new SqlCommand("select kgr_sno,kgr_ad,kgr_bsno from kulgrp where kgr_bsno=@id", conn); cmd.Parameters.AddWithValue("@id", kgrSno); SqlDataAdapter da = new SqlDataAdapter(cmd);数据表 dt = 新数据表(); da.填充(dt); kgrBsno.ChildNodes.Clear(); chilnddoldur(dt, kgrBsno.ChildNodes); conn.Close();code -
@user1054616:编辑您的问题以添加 SQL 部分,然后删除您的最后一条评论。