DataSet ds = new DataSet();
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection CN = new SqlConnection();
try
{
//初始化连接字符串
CN.ConnectionString = System.Configuration.ConfigurationManager.AppSettings["strconn"];
CN.Open();
//添加命令,从数据库中得到数据
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.Connection = CN;
sqlCmd.CommandText = "select * from menu";
sqlCmd.CommandType = CommandType.Text;
SqlDataAdapter adp = new SqlDataAdapter(sqlCmd);
adp.Fill(ds);
}
catch (Exception ex)
{
throw (ex);
}
finally
{
CN.Close();
}
//调用递归函数,完成树形结构的生成
AddTree(0, (TreeNode)null);
}
// 递归添加树的节点
public void AddTree(int sn, TreeNode pNode)
{
DataView dvTree = new DataView(ds.Tables[0]);
//过滤sn,得到当前的所有子节点
dvTree.RowFilter = "[sn] = " + sn;
TreeNode Node = new TreeNode();
foreach (DataRowView Row in dvTree)
{
if (pNode == null)
{ //'̀添加根节点
Node.Text = Row["menuname"].ToString();
this.TreeView1.Nodes.Add(Node); 這一行在第二次調用時也報錯!!! Node.Expanded = true; //节点状态展开
AddTree(Int32.Parse(Row["id"].ToString()), Node);
//TreeNode Node = this.TreeView1.Nodes.Add(Row["menuname"].ToString());
//AddTree(Int32.Parse(Row["id"].ToString()),Node); //再次递归
}
else
{
Node.Text = Row["menuname"].ToString();
pNode.Nodes.Add(Node); 這一行老報錯!!!! AddTree(Int32.Parse(Row["id"].ToString()), Node);
//添加当前节点的子节点
//TreeNode Node = pNode.Nodes.Add(Row["menuname"].ToString());
//AddTree(Int32.Parse(Row["id"].ToString()),Node); //再次递归
}
}
}
大家幫幫我看看呀