详解TreeView绑定数据库

2019-12-26 13:17:16王振洲

这篇文章主要演示了TreeView如何与数据库进行绑定

很多应用要用到TreeView来显示组织机构,以下演示TreeView如何与数据库进行绑定。

数据库结构如下(递归现实):

id(guid) pid(guid) name

18a83618-8751-47ef-91a0-e2dcde42bb71 **公司

c775c004-48ed-4664-8b0c-8fd26fea5f4e 18a83618-8751-47ef-91a0-e2dcde42bb71 A部门

a43696f0-a906-4b4a-8abf-a01fb7d54daf c775c004-48ed-4664-8b0c-8fd26fea5f4e A部门->1班组

0d7fb83a-c056-482e-800b-52e20c74791b c775c004-48ed-4664-8b0c-8fd26fea5f4e A部门->2班组

de28685a-aaff-4876-abe1-bb003d17db64 18a83618-8751-47ef-91a0-e2dcde42bb71 B部门

绑定到TreeView的最终效果如下图:

详解TreeView绑定数据库

1、新建一个TreeView控件

详解TreeView绑定数据库

二、绑定

2.1 传统做法(行不通)

详解TreeView绑定数据库

2.2 正确做法:自己建立一个递归的方法。

2.2.1 递归其实就是方法的重复调用

,下面是我总结的两种方法,对于初学者来说不明白其中的代码也没关系,直接拷贝下来用就可以了。

 

 
  1. #region 绑定TreeView  /// <summary> 
  2. /// 绑定TreeView(利用TreeNode)  /// </summary> 
  3. /// <param name="p_Node">TreeNode(TreeView的一个节点)</param>  /// <param name="pid_val">父id的值</param> 
  4. /// <param name="id">数据库 id 字段名</param>  /// <param name="pid">数据库 父id 字段名</param> 
  5. /// <param name="text">数据库 文本 字段值</param>  protected void Bind_Tv(DataTable dt,TreeNode p_Node, string pid_val, string id, string pid, string text) 
  6. {  DataView dv = new DataView(dt);//将DataTable存到DataView中,以便于筛选数据 
  7. TreeNode tn;//建立TreeView的节点(TreeNode),以便将取出的数据添加到节点中  //以下为三元运算符,如果父id为空,则为构建“父id字段 is null”的查询条件,否则构建“父id字段=父id字段值”的查询条件