zoukankan      html  css  js  c++  java
  • 掌握TreeView用法

    DAL层代码:

     1 using System.Collections.Generic;
    2 using System.Data;
    3 using DataTreeModel;
    4 using System.Data.SqlClient;
    5 using System.Windows.Forms;
    6
    7 namespace DataTreeDAL
    8 {
    9 class TreesNodeDAL
    10 {
    11 //根据Parentid返回表中所有的的实体对象
    12 public IEnumerable<ItemsNode> GetEveryOneByParent(int id)
    13 {
    14 DataTable dt=sqlHelper.GetDatatable("select * from ItemsNode where parentId =@id",
    15 new SqlParameter("id",id));
    16 List<ItemsNode> list = new List<ItemsNode>();
    17 foreach (DataRow row in dt.Rows)
    18 {
    19 list.Add(CreateItemsNose(row));//添加对象
    20 }
    21 return list;
    22 }
    23 //更新表中的记录
    24 public int UpdateRecord(ItemsNode item)
    25 {
    26 return sqlHelper.ExecuteNonQuery("update ItemsNode set name=@name,content=@content where id=@id", new SqlParameter("name", item.name), new SqlParameter("content", item.content),new
    27 SqlParameter("id",item.Id));
    28 }
    29
    30 public int InsertRecord(ItemsNode item)
    31 {
    32 return sqlHelper.ExecuteNonQuery("Insert into ItemsNode (name,content,parentId) values(@name,@content,@parentId)", new SqlParameter("name", item.name), new SqlParameter("content", item.content), new
    33 SqlParameter("parentId", item.parentId));
    34 }
    35
    36 public void DeleteNode(int ParentId)
    37 {
    38 //获得以该节点为父节点的所有子节点
    39 IEnumerable<ItemsNode> childens = GetEveryOneByParent(ParentId);
    40 foreach (ItemsNode child in childens)
    41 {
    42 DeleteNode((int)child.Id);
    43 }
    44 Delete(ParentId);
    45 }
    46
    47 //实例化对象
    48 private static ItemsNode CreateItemsNose(DataRow row)
    49 {
    50 ItemsNode item = new ItemsNode();
    51 item.Id = row.IsNull("Id")?null:(int?)row["Id"];
    52 item.name = (string)row["name"];
    53 item.parentId = row.IsNull("parentId") ? null : (int?)row["parentId"];
    54 item.content = (string)row["content"];
    55 return item;
    56 }
    57 //删除操作
    58 public int Delete(int id)
    59 {
    60 return sqlHelper.ExecuteNonQuery("delete from ItemsNode where id=@id",
    61 new SqlParameter("id", id));
    62 }
    63 }
    64 }

    BLL层代码:

     1 using System;
    2 using System.Collections.Generic;
    3 using System.Text;
    4 using DataTreeDAL;
    5 using DataTreeModel;
    6
    7 namespace DataTreeBLL
    8 {
    9 class TreeNodeBLL
    10 {
    11 //获得所有对象
    12 public IEnumerable<ItemsNode> GetEveryOneByParent(int id)
    13 {
    14 return new TreesNodeDAL().GetEveryOneByParent(id);
    15 }
    16 //更新
    17 public int UpdateRecord(ItemsNode item)
    18 {
    19 return new TreesNodeDAL().UpdateRecord( item);
    20 }
    21
    22 //增加
    23 public int InsertRecord(ItemsNode item)
    24 {
    25 return new TreesNodeDAL().InsertRecord(item);
    26 }
    27
    28 public void DeleteAllNode(int ParentId)
    29 {
    30 new TreesNodeDAL().DeleteNode(ParentId);
    31 }
    32 }
    33 }

    UI层代码:

      1 using System;
    2 using System.Collections.Generic;
    3 using System.Windows.Forms;
    4 using DataTreeBLL;
    5 using DataTreeModel;
    6
    7 namespace DataTree
    8 {
    9 public partial class Form1 : Form
    10 {
    11 public Form1()
    12 {
    13 InitializeComponent();
    14 }
    15
    16 private void Form1_Load(object sender, EventArgs e)
    17 {
    18 //获取所有的父节点对象
    19 IEnumerable<ItemsNode> items= new TreeNodeBLL().GetEveryOneByParent(0);
    20
    21 foreach(ItemsNode item in items)
    22 {
    23 //创建一个节点实例
    24 TreeNode Fnode = new TreeNode();
    25 Fnode.Text = item.name;
    26 Fnode.Tag = item;
    27 treeView1.Nodes.Add(Fnode);
    28 GetChildNode(Fnode,(int)item.Id);
    29 }
    30 treeView1.ExpandAll();
    31 }
    32 //遍历子节点
    33 protected void GetChildNode(TreeNode Pnode,int id)
    34 {
    35 //获取所有以此节点最为的父节点对象
    36 IEnumerable<ItemsNode> items = new TreeNodeBLL().GetEveryOneByParent(id);
    37 foreach (ItemsNode item in items)
    38 {
    39 TreeNode Fnode = new TreeNode();
    40 Fnode.Text = item.name;
    41 Fnode.Tag = item;//把节点的Tag指向对象
    42 Pnode.Nodes.Add(Fnode);
    43 GetChildNode(Fnode, (int)item.Id);
    44 }
    45 }
    46
    47 private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
    48 {
    49 ItemsNode item = (ItemsNode)e.Node.Tag;
    50 tb_content.Text = item.content;
    51 }
    52
    53 private void bt_modify_Click(object sender, EventArgs e)
    54 {
    55 ItemsNode item = (ItemsNode)treeView1.SelectedNode.Tag;
    56 Frmodify form = new Frmodify();
    57 form.FName = item.name;
    58 form.Content = item.content;
    59 if (form.ShowDialog()== DialogResult.OK)//递交修改指令
    60 {
    61 item.name = form.FName;
    62 item.content = form.Content;
    63 new TreeNodeBLL().UpdateRecord(item);
    64 treeView1.SelectedNode.Text = item.name;
    65 tb_content.Text = item.content;
    66 }
    67 }
    68
    69 private void bt_Insert_1_Click(object sender, EventArgs e)
    70 {
    71 Frmodify form = new Frmodify();
    72 if (form.ShowDialog() == DialogResult.OK)
    73 {
    74 ItemsNode item = new ItemsNode();
    75 item.name=form.FName;
    76 item.content=form.Content;
    77 item.parentId = 0;//一级节点
    78 new TreeNodeBLL().InsertRecord(item);
    79 TreeNode Node = new TreeNode();
    80 Node.Text=item.name;
    81 Node.Tag=item;
    82 treeView1.Nodes.Add(Node);
    83 }
    84 }
    85
    86 private void bt_Insert2_Click(object sender, EventArgs e)
    87 {
    88 TreeNode CurrentNode = treeView1.SelectedNode;
    89 Frmodify form = new Frmodify();
    90 if (form.ShowDialog() == DialogResult.OK)
    91 {
    92 ItemsNode item = (ItemsNode)CurrentNode.Tag;
    93 item.name = form.FName;
    94 item.content = form.Content;
    95 item.parentId=item.Id;
    96 new TreeNodeBLL().InsertRecord(item);
    97 //显示到界面
    98 TreeNode Node = new TreeNode();
    99 Node.Text = item.name;
    100 Node.Tag = item;
    101 CurrentNode.Nodes.Add(Node);
    102 }
    103 }
    104
    105 private void bt_Delete_Click(object sender, EventArgs e)
    106 {
    107 TreeNode Node = treeView1.SelectedNode;
    108 Node.Remove();
    109 ItemsNode item = (ItemsNode)Node.Tag;
    110 new TreeNodeBLL().DeleteAllNode((int)item.Id);
    111 }
    112 }
    113 }

    SQLhelper 类

     1 using System.Data;
    2 using System.Data.SqlClient;
    3 using System.Configuration;
    4
    5 namespace DataTreeDAL
    6 {
    7 class sqlHelper
    8 {
    9 protected static readonly string conStr = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;
    10 //返回一个结果集
    11 public static DataTable GetDatatable(string sql,params SqlParameter[] Paramers)
    12 {
    13 using (SqlConnection con = new SqlConnection(conStr))//创建一个连接
    14 {
    15 con.Open();//打开连接通道
    16 using (SqlCommand cmd =con.CreateCommand())//创建一个命令对象
    17 {
    18 cmd.CommandText = sql;
    19 cmd.Parameters.AddRange(Paramers);
    20 SqlDataAdapter da = new SqlDataAdapter(cmd);
    21 DataTable dt = new DataTable();
    22 da.Fill(dt);
    23 return dt;
    24 }
    25 }
    26 }
    27
    28 public static int ExecuteNonQuery(string sql, params SqlParameter[] Paramers)
    29 {
    30 using (SqlConnection con = new SqlConnection(conStr))//创建一个连接
    31 {
    32 con.Open();//打开连接通道
    33 using (SqlCommand cmd = con.CreateCommand())//创建一个命令对象
    34 {
    35 cmd.CommandText = sql;
    36 cmd.Parameters.AddRange(Paramers);
    37 return cmd.ExecuteNonQuery();
    38 }
    39 }
    40 }
    41 }
    42 }





  • 相关阅读:
    洛谷1026 统计单词个数
    洛谷1381 单词背诵
    Manacher(hdu3068最长回文)
    洛谷P1078 文化之旅
    HDU1269 迷宫城堡
    codevs1020 孪生蜘蛛
    洛谷P1027 Car的旅行路线
    楼房 洛谷1382 && codevs2995
    Picture poj1177
    排列组合
  • 原文地址:https://www.cnblogs.com/rohelm/p/2431596.html
Copyright © 2011-2022 走看看