TreeView遍历ACCESS表,求代碼,感謝
表結如下:
NodeId ParentId NodeName
10 0 A
11 0 B
12 0 C
13 10 AA
14 10 AAA
15 11 BB
16 15 BBB
17 12 CC
18 17 CCC
表結如下:
NodeId ParentId NodeName
10 0 A
11 0 B
12 0 C
13 10 AA
14 10 AAA
15 11 BB
16 15 BBB
17 12 CC
18 17 CCC
解决方案 »
- 网站RSS源做好了,怎么同步到新浪微博?
- 关于读取通过COM口连接电脑的电子天枰数据的问题
- Inno Setup 的code段中,如何自定义 停止/终止 程序的安装?
- 用VS2005或VS2008的调试工具进行远程调试,不能设置断点?
- 有没有一个简单的C#开发Winform的新增保存删除的例子,在线等!
- C# execl导入access等待提示窗口
- windows程序修改server的web.config文件问题
- 如何实现Sql server数据库的树状列表,以及如何读取表和字段?
- 急需大家指点下方法
- 根据2点平面坐标,如何计算出直线的插值点坐标?
- SPSS怎样在自已的程序中直接生成sav文件。
- 再开100分请教网页中拖放图片显示在窗体中的PictureBox问题
/// 递归添加TreeView节点
/// </summary>
/// <param name="ParentID">父节点</param>
/// <param name="pNode">当前节点</param>
/// <param name="dtTree">数据源</param>
public void AddTree(string ParentId , TreeNode pNode, DataTable dtTree)
{
DataView dvTree = new DataView(dtTree); //父节点
string Fstr = "ParentId = '" + ParentID + "'"; dvTree.RowFilter = Fstr;
foreach (DataRowView Row in dvTree)
{
TreeNode Node = new TreeNode();
if (pNode == null) //处理主节点
{
Node.Name = Row[NodeId].ToString();
Node.Text = Row[NodeName].ToString();
this.trv_Group.Nodes.Add(Node);//加入
AddTree(Row[NodeId].ToString(), Node, dtTree);
}
else //处理子节点
{
Node.Name = Row[NodeId].ToString();
Node.Text = Row[NodeName].ToString();
pNode.Nodes.Add(Node);//加入
AddTree(Row[NodeId].ToString(), Node, dtTree);
}
Node.ExpandAll();
} }
{
string connstring = ConfigurationManager.ConnectionStrings["DBLIKE"].ConnectionString;
OleDbConnection likecon = new OleDbConnection(connstring);
likecon.Open();
string sqltxt = "select nodeid,parentid,nodename from menu";
OleDbDataAdapter sda = new OleDbDataAdapter(sqltxt, likecon);
DataSet DataSet_Tree = new DataSet();
sda.Fill(DataSet_Tree);
this.ViewState["DataSet_Tree"] = DataSet_Tree;
//调用递归函数,完成树形结构的生成
AddTree(0, (TreeNode)null);
} public void AddTree(int ParentID, TreeNode pNode)
{
DataSet DataSet_Tree = (DataSet)this.ViewState["DataSet_Tree"];
DataView DataView_Tree = new DataView(DataSet_Tree.Tables[0]);
//过滤ParentID,得到当前的所有子节点 ParentID为父节点ID
DataView_Tree.RowFilter = "[parentid] = " + ParentID; //循环递归
foreach (DataRowView Row in DataView_Tree)
{
//声明节点
TreeNode Node=new TreeNode() ;
//绑定超级链接
//Node.NavigateUrl = "List.aspx?Item_ID="+Row["Item_ID"].ToString();
//开始递归
if(pNode == null)
{
//添加根节点
Node.Text = Row["nodename"].ToString();
TreeView.Nodes.Add(Node);
Node.Expanded=true; //节点状态展开
AddTree(Int32.Parse(Row["nodeid"].ToString()), Node); //再次递归
}
else
{
//添加当前节点的子节点
Node.Text = Row["nodename"].ToString();
pNode.Nodes.Add(Node);
Node.Expanded = true; //节点状态展开
AddTree(Int32.Parse(Row["nodeid"].ToString()), Node); //再次递归
}
}
//关闭连接
protected void Button2_Click(object sender, EventArgs e)
{
string connstring = ConfigurationManager.ConnectionStrings["DBLIKE"].ConnectionString;
//string connstring = "Data Source=MIS1000;Initial Catalog=pubs;Persist Security Info=True;User ID=sa;Password=";
SqlConnection lcon = new SqlConnection(connstring);
lcon.Open();
string sqltxt = "select * from sysMenuTree";
SqlDataAdapter sda = new SqlDataAdapter(sqltxt, lcon);
DataSet DataSet_Tree = new DataSet();
sda.Fill(DataSet_Tree);
this.ViewState["DataSet_Tree"] = DataSet_Tree;
//调用递归函数,完成树形结构的生成
AddTree(0, (TreeNode)null); }
public void AddTree(int ParentID, TreeNode pNode)
{
DataSet DataSet_Tree = (DataSet)this.ViewState["DataSet_Tree"];
DataView DataView_Tree = new DataView(DataSet_Tree.Tables[0]);
//过滤ParentID,得到当前的所有子节点 ParentID为父节点ID
DataView_Tree.RowFilter = "[ParentId] = " + ParentID;
//循环递归
foreach (DataRowView Row in DataView_Tree)
{
//声明节点
TreeNode Node = new TreeNode();
//绑定超级链接
//Node.NavigateUrl = "List.aspx?Item_ID="+Row["Item_ID"].ToString();
//开始递归
if (pNode == null)
{
//添加根节点
Node.Text = Row["sValue"].ToString();
treeMenu.Nodes.Add(Node);
Node.Expanded = true; //节点状态展开
AddTree(Int32.Parse(Row["NoteId"].ToString()), Node); //再次递归
}
else
{
//添加当前节点的子节点
Node.Text = Row["sValue"].ToString();
pNode.ChildNodes.Add(Node);
Node.Expanded = true; //节点状态展开
AddTree(Int32.Parse(Row["NoteId"].ToString()), Node); //再次递归
}
}
//关闭连接