zoukankan      html  css  js  c++  java
  • C# 中 tree 结构的显示

    代码
    //访问数据库
            public DataTable gettable(String sql) 
            {
                 SqlConnection sqlcon 
    =null;
                 
    try
                 {
                     
    //得到连接字符串
                     String constr = "Data Source=.;Initial Catalog=Test;Persist        Security    Info=True;User ID=sa;Password=sasa";
                     
    //得到连接对象
                     sqlcon = new SqlConnection(constr);
                     
    //打开连接
                     sqlcon.Open();
                     
    //获得执行对象
                     SqlCommand comand = new SqlCommand(sql, sqlcon);
                     SqlDataAdapter data 
    = new SqlDataAdapter(comand);
                     DataSet 
    set = new DataSet();
                     data.Fill(
    set);
                     
    return set.Tables[0];
                 }
                 
    catch (Exception ex)
                 { 
                     
    throw ex ;
                 }
                 
    finally 
                 {
                        
    //关闭连接
                        sqlcon.Close();
                 }

    DataTable table 
    = null;
              
    //加载
            private void Form1_Load(object sender, EventArgs e)
            {
                
    //查询所有数据
                string sql = "select *from test ";
                table 
    = gettable(sql);
                
    //从datea中帅选 一级菜单
                DataRow[] arr = table.Select("pid =0 "); //父id
                foreach(DataRow row in arr)
                {
                    TreeNode node 
    = new TreeNode(row["name"].ToString());
                    node.Tag 
    =row["id"].ToString();
                    addnode(node); 
    //是否有子节点
                    this.treeView1.Nodes.Add((node));
                }
              }

         
    //递归 显示子节点
              public void addnode(TreeNode node) 
            {
                
    string id = node.Tag.ToString();
                DataRow[] arr 
    = table.Select("pid = "+ id ); //子节点
                foreach (DataRow row in arr)
                {
                    TreeNode nodenode 
    = new TreeNode(row["name"].ToString());
                    nodenode.Tag 
    = row["id"].ToString();
                    node.Nodes.Add(nodenode);
                    addnode(nodenode) ;        
    // 子节点是否还有子节点
                    
    //递归自己调用自己必须有退出的条件否则 死循环      

                 }
             }

  • 相关阅读:
    整数拆分
    win8 使用notepad++写C代码
    hessian客户端调用服务端测试类
    多线程环境下保证实现单线程的案例
    windows server 2008开机启动多个tomcat服务方法及遇到问题
    解决加载静态文件无法被浏览器缓存问题
    【拦截器】HandlerInterceptor接口
    【pac4j】OAuth 认证机制 入门篇
    【Linux部署 · JDK】在linux系统安装jdk
    【Linux部署 · GIT】在linux系统安装git和配置实现SSH
  • 原文地址:https://www.cnblogs.com/fanxianhua/p/1641876.html
Copyright © 2011-2022 走看看