随笔 - 64  文章 - 5 评论 - 23 阅读 - 64051
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

复制代码
代码
//访问数据库
        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) ;        
// 子节点是否还有子节点
                
//递归自己调用自己必须有退出的条件否则 死循环      

             }
         }
复制代码

 

posted on   fxh嘟嘟  阅读(462)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示