主页面

数据库(基于之前的省市数据库)

主程序

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace treeview1
{public partial class Form1 : Form{public Form1(){InitializeComponent();}// 首先将所有数据读取出来,在进行递归排列List<Info> list = new List<Info>();private void Form1_Load(object sender, EventArgs e){InitData();AddTree(0, null);}void InitData(){SqlConnection conn = new SqlConnection("server=PC201609230944\\SQL2005;database=HeiMaBlog;user=sa;pwd=123456");SqlCommand cmd = new SqlCommand("select * from Area", conn);conn.Open();SqlDataReader dr = cmd.ExecuteReader();if (dr.HasRows){while (dr.Read()){Info nin = new Info() { Ar_id = dr.GetInt32(0), Ar_name = dr[1].ToString(), Ar_uid = dr.GetInt32(2) };list.Add(nin);}}}// 递归// 父id和父节点// 省:父id = 0,父节点是trMainvoid AddTree(int pid, TreeNode pnod){foreach (Info item in list){if (item.Ar_uid == pid){// 新建一个节点,并且给节点赋值TreeNode tnod = new TreeNode();tnod.Text = item.Ar_name;if (pnod == null){// 父节点为null,添加到trMain
                        trMain.Nodes.Add(tnod);}else{//不是,就添加到父级点上
                        pnod.Nodes.Add(tnod);}AddTree(item.Ar_id, tnod);}}}}
}

辅助

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace treeview1
{class Info{/// <summary>/// 地区编号/// </summary>int ar_id;public int Ar_id{get { return ar_id; }set { ar_id = value; }}/// <summary>/// 地区名字/// </summary>string ar_name;public string Ar_name{get { return ar_name; }set { ar_name = value; }}/// <summary>/// 地区父级/// </summary>int ar_uid;public int Ar_uid{get { return ar_uid; }set { ar_uid = value; }}}
}

转载于:https://www.cnblogs.com/lisong-home/p/7748296.html

Net学习日记_ADO.Net_2_练习(treeView)相关推荐

  1. java的圆周率_java学习日记,圆周率的打印

    前段时间看到听说学习java每天写技术贴会对自己提升很大,我现在学习java也就2个周,算不上技术贴,就写写学习日记吧. 昨天师傅给我出了一道题,说是试试用java打印圆周率. 刚开始我的思路是,如果 ...

  2. GPU(CUDA)学习日记(十一)------ 深入理解CUDA线程层次以及关于设置线程数的思考

    GPU(CUDA)学习日记(十一)------ 深入理解CUDA线程层次以及关于设置线程数的思考 标签: cuda存储线程结构网格 2012-12-07 16:30 6298人阅读 评论(4)收藏 举 ...

  3. GPU(CUDA)学习日记(十三)------ CUDA内存简介

    GPU(CUDA)学习日记(十三)------ CUDA内存简介 标签: cuda存储线程结构 2012-12-07 16:53 2902人阅读 评论(0)收藏 举报 分类: GPU(16) CUDA ...

  4. GPU(CUDA)学习日记(九)------ CUDA存储器模型

    GPU(CUDA)学习日记(九)------ CUDA存储器模型 标签: cuda存储bindingcache编程api 2012-09-27 10:53 1677人阅读 评论(1) 收藏 举报 分类 ...

  5. 语言余一个负数_C语言学习日记(8)——整数溢出

    小时候喜欢玩电子计算器,觉得很神奇,想要算什么数,立刻就能算出来.当时看着计算器的液晶屏幕就想,如果算一个很大的数,超过了屏幕上面数字的位数,会怎么样呢?试了以后结果是INF,那就是无穷大了.虽然当时 ...

  6. SpringMVC学习日记 1.Spring框架

    SpringMVC学习日记 1.Spring框架 Spring简介 Spring框架是一个开源框架,由Rod Johnson组织和开发,生产目的在于简化企业级应用的开发. 主要特性 非侵入(no-in ...

  7. 微信开发学习日记(一):快速阅读5本书,掌握整体背景

    2015年1月开始学习微信开发. 已经有多年开发经验了,从网上文章来看,微信开发主要是接口,然后是业务逻辑,不是很难.所以,我比较强调学习效率.一天学一点,是不能满足我的快速学习欲望的.       ...

  8. const 指针_C语言学习日记(11)——const与指针

    对于一个普通指针typet *p.p有三个最基本的能力,第一就是可以通过p = &obj来指向一个type类型对象,并随意切换指向对象.第二就是通过value = *p来读取它指向的对象的值. ...

  9. 十五的学习日记20160926-你不知道的JS笔记/

    十五的学习日记20160926 JavaScript 一个用于检测正负值的函数,可以用它辨别-0值. 我觉得挺好用,以后可以写到自己的工具库里. //函数:检查传入参数是否为正数.Number=> ...

最新文章

  1. 强烈推荐7个让人惊艳的宝藏实用网站,太好用了
  2. rails小重构:将图片加入产品Model
  3. 解决Mac app store更新时[newNUllResponse]的问题
  4. 【强化学习】DDPG
  5. mysql 数据库学习(触发器)
  6. 2019ICPC(徐州) - so easy(并查集+离散化)
  7. .NET MYSQL数据库操作基类( C#源码)
  8. 小样本点云深度学习库_合成鲁棒的对抗样本来欺骗深度学习分类器
  9. Apache ab 压力测试工具
  10. easyui和My97DatePicker结合使用报“权限错误”的问题
  11. MySQL存储过程的使用
  12. android 自动打印出来,Android:签名打包后关闭Log打印
  13. 发票编号识别、验证码识别 ,图像分割
  14. 清涟基因--顾大夫工作室相关网站
  15. VMware15.0安装CentOS7
  16. 第十五课.K均值算法
  17. 阿里巴巴实习生电话面试
  18. 金山毒霸11,更新内容,问题修复了什么?
  19. 天津大学计算机学院李晨曦,李晨曦-天津大学-生物医学光子成像实验室
  20. 裸辞指的是什么?裸辞到底好不好?

热门文章

  1. 网络安全相关行业必备网站
  2. ctfshow-萌新-web12( 利用命令执行函数获取网站敏感信息)
  3. 外虚内实是什么意思_取名|为什么00后那么多梓涵?
  4. Nodejs内存控制详解(上篇)
  5. 《UG NX8.0中文版完全自学手册》一2.4 布局
  6. (转载)Cocos2dx-OpenGL ES2.0教程:初识MVP(3)
  7. Java语言词法分析器
  8. SQL Server 2008 R2 里迁移系统数据库的方法
  9. 最近的问题汇总(至2010/10/6 12:00)
  10. ASP.net控件开发系列之(一、二)