TreeView读取数据库(三层架构)


 

 

1、新建表,表名为class,字段如下

2、拖出一个TreeView控件,控件命名为:tvwLM

3、新建类

① DAL(数据访问层)代码:

     新建一个类,名字为DAL,里面的代码拷贝,粘贴就可以,注意要改一下连接字符串;

 

 1 using System;
 2 
 3 using System.Collections.Generic;
 4 
 5 using System.Linq;
 6 
 7 using System.Web;
 8 
 9 using System.Data.SqlClient;
10 
11 using System.Data;
12 
13  
14 
15 public class DAL
16 
17 {
18 
19    //返回连接对象;
20 
21     private SqlConnection GetConnection()
22 
23     {
24 
25         string myStr = "Data Source=IP地址;Initial Catalog=数据库名;user ID=用户名;Password=密码";
26 
27 //定义连接对象;
28 
29         SqlConnection myConn = new SqlConnection(myStr);
30 
31         myConn.Open();//打开连接对象;
32 
33         return myConn;
34 
35     }
36 
37    //执行sql语句并返回结果集;
38 
39     public DataSet Ds(string sql)
40 
41 {
42 
43  
44 
45         SqlConnection myConn = GetConnection();
46 
47         SqlCommand myComm = new SqlCommand(sql, myConn);
48 
49         SqlDataAdapter myDa = new SqlDataAdapter(myComm);
50 
51         DataSet Ds = new DataSet();
52 
53         myDa.Fill(Ds);
54 
55         myConn.Close();
56 
57         myComm.Dispose();
58 
59         myDa.Dispose();
60 
61         return Ds;
62 
63 }
64 
65 }

 

 

 

② BLL(业务逻辑层)代码:

   新建一个类,名字为ClassBLL,里面的代码拷贝,粘贴就可以;

 

 1 using System;
 2 
 3 using System.Collections.Generic;
 4 
 5 using System.Linq;
 6 
 7 using System.Web;
 8 
 9 using System.Data;
10 
11  
12 
13 public class ClassBLL
14 
15 {
16 
17 //实例化数据访问层对象;
18 
19 DAL classDAL = new DAL ();
20 
21 //返回结果集;
22 
23     public DataSet findParent()
24 
25 {
26 
27 //查询全部;
28 
29         string sql = "select *from class";
30 
31         return classDAL.Ds(sql);
32 
33     }
34 
35 }

 

 

 

4、编写cs后台代码;

  后台代码,适当复制,复制引用,类里面的代码;
 

  1 using System;
  2  
  3  using System.Collections.Generic;
  4  
  5  using System.Linq;
  6  
  7  using System.Web;
  8  
  9  using System.Web.UI;
 10  
 11  using System.Web.UI.WebControls;
 12  
 13  using System.Collections;
 14  
 15  using System.Data;
 16  
 17  public partial class zjdm_wzlmgl : System.Web.UI.Page
 18  
 19  {
 20  
 21      ClassBLL classBLL = new ClassBLL();
 22  
 23      DataSet ds = new DataSet();
 24  
 25      //绑定节点;
 26  
 27      public void bind()
 28  
 29      {
 30  
 31          tvwLM.Nodes.Clear();
 32  
 33          ds = cBLL.findParent();
 34  
 35          //声明节点;
 36  
 37          TreeNode treeNode;
 38  
 39          for (int i = 0; i <ds.Tables[0].Rows.Count; i++)
 40  
 41          {
 42  
 43              if (int.Parse(ds.Tables[0].Rows[i]["ParentID"].ToString()) == 0)
 44  
 45              {
 46  
 47                  int ClassCount = 0;
 48  
 49                  //实例化节点
 50  
 51                  treeNode = new TreeNode();
 52  
 53                  //----添加子节点
 54  
 55                  for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
 56  
 57                  {
 58  
 59                 //读取ds的第一个表的第i行,列名为ClassID和ds的第一个表的第j行,列名为ParentID进行比较,如果相等则这个节点为子节点;
 60  
 61                      if (ds.Tables[0].Rows[i]["ClassID"].ToString() == ds.Tables[0].Rows[j]["ParentID"].ToString())
 62  
 63                      {
 64  
 65                          TreeNode treeNode1 = new TreeNode(ds.Tables[0].Rows[j]["ClassName"].ToString(), "", "", ds.Tables[0].Rows[j]["LinkUrl"].ToString(),"");
 66  
 67                          treeNode1.ToolTip = ds.Tables[0].Rows[j]["ClassName"].ToString();
 68  
 69                          treeNode.ChildNodes.Add(treeNode1);
 70  
 71                          ClassCount++;
 72  
 73                      }
 74  
 75                  }
 76  
 77                  //----添加子节点结束;
 78  
 79   
 80  
 81                  //----设置父节点标题;
 82  
 83                  treeNode.Text=ds.Tables[0].Rows[i]["ClassName"].ToString()+" ("+ClassCount+")";
 84  
 85                  treeNode.ToolTip = ds.Tables[0].Rows[i]["ClassName"].ToString();
 86  
 87                  //添加父节点;
 88  
 89                  tvwLM.Nodes.Add(treeNode);
 90  
 91              }
 92  
 93          }
 94  
 95  }
 96  
 97  //页面加载时运行代码;
 98  
 99      protected void Page_Load(object sender, EventArgs e)
100  
101      {
102  
103          if (!IsPostBack)
104  
105          {
106  
107  //调用绑定;
108  
109              bind();
110  
111          }
112  
113      }
114  
115  }

 

 

 

    又到手工的时间了,回家吃饭了,大家再见,吃饱饭在来写,希望本文章对大家都有用,希望大家多多推荐,多多收藏,谢谢大家!!o(∩_∩)o 哈哈
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM