TreeView难题 构造好了树型数据就够了阿,接着treeview加载跟节点,跟节点再加子节点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 主键 属性名 类型 长度 可空 属性含义是 Nodeid int 6 否 节点ID Parentid int 6 否 父节点ID Nodename char 50 否 节点名称 Address char 80 可 链接地址 DataSet ds=new DataSet(); private void Form1_Load(object sender, System.EventArgs e) { // 定义数据库连接 SqlConnection CN = new SqlConnection(); try { //初始化连接字符串 CN.ConnectionString= "data source=pmserver;initial catalog=Bench;persist security info=False;user id=sa;Password=sa;"; CN.Open(); //添加命令,从数据库中得到数据 SqlCommand sqlCmd= new SqlCommand(); sqlCmd.Connection = CN; sqlCmd.CommandText = "select * from tbTree"; 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 ParentID,TreeNode pNode) { DataView dvTree = new DataView(ds.Tables[0]); //过滤ParentID,得到当前的所有子节点 dvTree.RowFilter = "[PARENTID] = " + ParentID; foreach(DataRowView Row in dvTree) { if(pNode == null) { //'̀添加根节点 TreeNode Node = treeView1.Nodes.Add(Row["ConText"].ToString()); AddTree(Int32.Parse(Row["ID"].ToString()),Node); //再次递归 } else { //添加当前节点的子节点 TreeNode Node = pNode.Nodes.Add(Row["ConText"].ToString()); AddTree(Int32.Parse(Row["ID"].ToString()),Node); //再次递归 } } } 我的意思是可否由业务逻辑构造好TreeNode.然后直接交给treeview显示 asp.net中的treeview控件是可以和xml文件(指定的格式)绑在一起,winform中不知道有没有这个功能,一般都是通过递归来实现treeview的生成。 怎么样在WINFORMJ里面画甘特图啊,有谁有甘特图控件啊,顶者有分 关于正则表达式 谁有上海先锋商泰 笔试题目 求救! vs2005注册flash控件的问题,以前的方法都不管用了啊 我的第一个Web应用程序,现开源奉献给大家,可以给各个站点提供 免费天气预报代码。 .NET中操作EXCEL 请教:2003里正常,为什么2005里会出异常? 急!急!利用 mshtml 和 axWebBrowser 获取Table里td的问题 SQL拼接与SQL中使用@参数名方式效率有影响么? DataGridView控件,头疼了好久了 有关多媒体播放,抓图的问题? 求ADO.NET高级编程的代码
是 Nodeid int 6 否 节点ID
Parentid int 6 否 父节点ID
Nodename char 50 否 节点名称
Address char 80 可 链接地址
private void Form1_Load(object sender, System.EventArgs e)
{
// 定义数据库连接
SqlConnection CN = new SqlConnection();
try
{
//初始化连接字符串
CN.ConnectionString= "data source=pmserver;initial catalog=Bench;persist security info=False;user id=sa;Password=sa;";
CN.Open();
//添加命令,从数据库中得到数据
SqlCommand sqlCmd= new SqlCommand();
sqlCmd.Connection = CN;
sqlCmd.CommandText = "select * from tbTree";
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 ParentID,TreeNode pNode)
{
DataView dvTree = new DataView(ds.Tables[0]);
//过滤ParentID,得到当前的所有子节点
dvTree.RowFilter = "[PARENTID] = " + ParentID;
foreach(DataRowView Row in dvTree)
{
if(pNode == null)
{ //'̀添加根节点
TreeNode Node = treeView1.Nodes.Add(Row["ConText"].ToString());
AddTree(Int32.Parse(Row["ID"].ToString()),Node); //再次递归
}
else
{ //添加当前节点的子节点
TreeNode Node = pNode.Nodes.Add(Row["ConText"].ToString());
AddTree(Int32.Parse(Row["ID"].ToString()),Node); //再次递归
}
}
}