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