数据库与递归搭配的技巧
上一篇 /
下一篇 2012-07-03 08:42:16
/ 个人分类:数据库
51Testing软件测试网&]-V6J'e
M$e,R(Pq$g&j2} 本文讨论一个非常实用的示例,将分类数据从数据库中提取出来,再通过递归技巧根据分类建立TreeView节点。51Testing软件测试网M-]d6Ra/R5L
v(G*gTI6h*W~
K6SyP0 示例CatTreeVeiw51Testing软件测试网9e N^fM[
51Testing软件测试网7Rt#d)UUa?9bY 为了实现这个示例,我们设计了一个用来储存技术文件分类名称的数据库,数据表结构与其中所储存的数据如下图所示。
L _`3i
l
]
xi3R0
-[2OA"N6tot_L Cg0
数据表中的每一笔数据均代表一个特定的分类项目,字段bookCatID则是这个分类的唯一识别编号,字段bookCatIDParent用来链接分类
项目的上一层分类,如果当前这一个分类项目是某个分类的子分类,则此字段必须填入其上层分类项目的bookCatID。
eY*Z ~(|%i~0 先来看看这个示例的执行结果,页面如下图所示。51Testing软件测试网F0q[)^W5Xc5X*~
zN7Q9t{4oVZJ0 这个示例的重点在于数据表的设计,也就是关联字段bookCatIDParent,我们通过这个字段运用递归式,提取所需的架构数据。网页的内容很简单,配置了一个TreeView控件,配置程序代码的内容如下:
Kn~z-e^0\2]Up;l
}:c9L0public
partial class _Default : System.Web.UI.Page {protected void
Page_Load(object sender, EventArgs e){ if (!IsPostBack){String sqlString
= "SELECT * FROM BooksCat ";SqlConnection sqlConn = new
SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["CBooksConnectionString"].ToString());SqlCommand
sqlCmd = new SqlCommand(sqlString, sqlConn);51Testing软件测试网2J+? XtB|:Z DataSet dataSet = new DataSet(); #a'N(Ty1gM8Y
P0SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCmd); |