无限级分类(非递归算法/存储过程版/GUID主键)完整数据库示例_(4)显示记录
显示记录,其实再简单不过了,一条sql语句即可
Select * From T_Class order By F_RootID,F_Orders
下面给出一个ASPX(C#版)的示例
Database.ConnectionString = "Data Source=127.0.0.1;Initial Catalog=cntvs;Persist Security Info=True;User ID=sa;Password=3power";
string _strSql = "Select * from T_Class order By F_rootId,F_Orders"; SqlConnection conn = Database.GetConn();
//插入几个演示用的节点 Database.ExecuteNonQuery(conn, CommandType.Text, "truncate table T_Class"); Database.ExecuteNonQuery(conn, CommandType.Text, "exec up_Class_InsertEx 'c12fe245-75ec-4b28-82e1-99e501672f41','product','00000000-0000-0000-0000-000000000000','A',''"); Database.ExecuteNonQuery(conn, CommandType.Text, "exec up_Class_InsertEx '0c630080-51b0-4b92-bd6c-99e50167d8a5','product','c12fe245-75ec-4b28-82e1-99e501672f41','A1',''"); Database.ExecuteNonQuery(conn, CommandType.Text, "exec up_Class_InsertEx '9eeda546-927e-4b2a-a4e8-99e501681676','product','0c630080-51b0-4b92-bd6c-99e50167d8a5','A11',''"); Database.ExecuteNonQuery(conn, CommandType.Text, "exec up_Class_InsertEx 'bc36649c-736a-467f-b2f1-99e501687083','product','0c630080-51b0-4b92-bd6c-99e50167d8a5','A12',''"); Database.ExecuteNonQuery(conn, CommandType.Text, "exec up_Class_InsertEx '2b975d64-27c7-4759-b475-99e50168d622','product','c12fe245-75ec-4b28-82e1-99e501672f41','A2',''"); Database.ExecuteNonQuery(conn, CommandType.Text, "exec up_Class_InsertEx 'b2703d81-60c8-4e08-8ed4-99e50169376b','product','2b975d64-27c7-4759-b475-99e50168d622','A21',''"); Database.ExecuteNonQuery(conn, CommandType.Text, "exec up_Class_InsertEx '91ca8257-317e-4a6b-ab33-99e50169540a','product','2b975d64-27c7-4759-b475-99e50168d622','A22',''"); Database.ExecuteNonQuery(conn, CommandType.Text, "exec up_Class_InsertEx '4ce0b1de-68ab-4e2b-bb85-99e5016961b7','product','2b975d64-27c7-4759-b475-99e50168d622','A23',''"); Database.ExecuteNonQuery(conn, CommandType.Text, "exec up_Class_InsertEx 'cc05c6e0-fde8-4f1c-aac6-99e50169f995','product','4ce0b1de-68ab-4e2b-bb85-99e5016961b7','A231',''"); Database.ExecuteNonQuery(conn, CommandType.Text, "exec up_Class_InsertEx '31c710bd-d2ff-4ffb-a8e9-99e50169eee4','product','4ce0b1de-68ab-4e2b-bb85-99e5016961b7','A232',''"); Database.ExecuteNonQuery(conn, CommandType.Text, "exec up_Class_InsertEx 'c11d5fc2-cb6b-488c-b97c-99e5016a4c9a','product','c12fe245-75ec-4b28-82e1-99e501672f41','A3',''");
//读出节点 SqlDataReader sdr = Database.ExecuteReader(conn, CommandType.Text, _strSql); while (sdr.Read()) { string t = ""; for (int i = 0; i < Convert.ToInt16(sdr["F_Depth"].ToString()); i++) { t += " |- "; } Response.Write(t + sdr["F_ClassName"].ToString() + "<br/>"); } sdr.Close();
Database.Dispose(conn);
最终页面上的显示结果如下:
A |- A1 |- |- A11 |- |- A12 |- A2 |- |- A21 |- |- A22 |- |- A23 |- |- |- A231 |- |- |- A232 |- A3
- 这或许是我见过的最简单的正则表达式教程(一)
- Linux下如何安装和卸载JDK
- 讨厌算法的程序员 2 - 证明算法的正确性
- Day4上午解题报告
- [编程经验] Python正则表达式
- Day4下午解题报告
- linux下 Error running javac compiler
- 讨厌算法的程序员 1 - 插入排序
- Linux下使用ssh密钥实现无交互备份
- [编程经验] Python中的continue和break语句
- 洛谷 P3386 【模板】二分图匹配 Dinic版
- [编程经验] 拉勾网爬虫数据的后续处理
- Linux下使用rsync实现文件备份
- 【干货】基于TensorFlow卷积神经网络的短期股票预测
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 「okhttp」Gradle引用改jar包引用(一波三折)
- 「问答」解决CSV文件用Excel打开乱码问题
- 「问答」解决jar包运行时相对路径问题
- 「Eclipse」生成能用命令行运行的jar包
- 「AndroidStudio」fastjson导包报错:Could not resolve com.alibaba:fastjson:1.1.56.android
- 「Android」通过注解自动生成类文件:APT实战(AbstractProcessor)
- 五、开始Github和码云之旅,新手如何上路
- 用 Shader 写个完美的波浪~
- K8s上的Go服务怎么扩容、发版更新、回滚、平滑重启?教你用Deployment全搞定!
- 图解Go内存管理器的内存分配策略
- why哥这里有一道Dubbo高频面试题,请查收。
- 「容器平台」Kubernetes网络策略101
- 架构师之路 - 服务器硬件扫盲
- 零基础Python教程045期 元组的增删改查测试实验
- 零基础Python教程044期 列表的函数方法,很耐用!