【转载百度空间】TreeView绑定数据库

转载 2013年12月02日 17:08:56

TreeView绑定数据库

【转载于百度空间】
jiangzhuyang的空间hi.baidu.com/jiangzhuyang/item/f63706d52b14df2938f6f7e1
数据库:

公司:id(int)     company(varchar(50)

部门:id(int)     deid(int)     department(varchar(50))

班组:id(int)     coid(int)     class(varchar(50))

前台:略

后台代码:
        DB DBManager = new DB();//实例化数据库操作类    //链接数据库字段
        string strConn = System.Configuration.ConfigurationManager.ConnectionStrings["rizhi"].ConnectionString;   
        protected void Page_Load(object sender, EventArgs e)   
        {   
            if (!IsPostBack)   
            {   
                //TreeView1.Attributes.Add("onclick", "OnTreeNodeChecked()");   
                TreeView1.Attributes.Add("onclick", "testClick(event);return true;")

                //单击文字,CheckBox=true   
                TreeView1.ShowCheckBoxes = TreeNodeTypes.Leaf;//最后一级选中   
                TreeView1.ExpandDepth = 0;   //不展开   
                using (SqlConnection conn = new SqlConnection(strConn))   
                {   
                    DataSet ds_company = new DataSet();//实例化数据集(公司)   
                    SqlDataAdapter sda_company = new SqlDataAdapter("select * from [company] where id<>"+0+" and id<>"+1001, conn);//实例化数据适配器(公司)   
                    sda_company.Fill(ds_company, "company");//虚拟表填充到内存   
                    for (int i = 0; i < ds_company.Tables["company"].Rows.Count; i++)//循环所有"公司"   
                    {   

                        //【公司名称】
                        TreeNode td_company = new TreeNode();//实例化公司节点   
                        td_company.Text = ds_company.Tables["company"].Rows[i]["company"].ToString();//公司节点名称   
                        TreeView1.Nodes.Add(td_company);//将公司节点添加至"树"   
                        td_company.SelectAction = TreeNodeSelectAction.Expand;   
                        //【部门名称】
                        DataSet ds_department = new DataSet();//实例化数据集(部门)   
                        SqlDataAdapter sda_department = new SqlDataAdapter("select * from [department] where [coid]=" + ds_company.Tables["company"].Rows[i]["id"]+" and department<>'全公司'" , conn);//实例化数据库适配器(部门)   
                        sda_department.Fill(ds_department, "department");//虚拟表填充到内存   
                        for (int j = 0; j < ds_department.Tables["department"].Rows.Count; j++)

                        //循环 ds.Tables["department"].Rows[i]["id"] 对应的所有部门   
                        {   
                            TreeNode td_department = new TreeNode();//实例化部门节点   
                            td_department.Text = ds_department.Tables["department"].Rows[j]["department"].ToString();

                             //部门节点名称   
                            td_company.ChildNodes.Add(td_department);//填充部门节点至"树"   
                            td_department.SelectAction = TreeNodeSelectAction.Expand;//只允许展开 
                             //【班组】
                            #region 如果人员属于某个班组 【情况一】  
                            if (DBManager.getDs("select [info] from [user] where [pid]=" + ds_department.Tables["department"].Rows[j]["id"] + "", "is").Tables["is"].Rows.Count == 0)   
                            {   
                                DataSet ds_class = new DataSet();//实例化数据集(班组)   
                                SqlDataAdapter sda_class = new SqlDataAdapter("select * from [class] where [deid]=" + ds_department.Tables["department"].Rows[j]["id"], conn);//实例化数据库适配器(班组)   
                                sda_class.Fill(ds_class, "class");//虚拟表填充到内存   
                                for (int z = 0; z < ds_class.Tables["class"].Rows.Count; z++)//循环 ds_department.Tables["class"].Rows[j]["id"] 对应的所有班组   
                                {   
                                    TreeNode td_class = new TreeNode();//实例化班组节点   
                                    td_class.Text = ds_class.Tables["class"].Rows[z]["class"].ToString();//班组节点名称   
                                    td_department.ChildNodes.Add(td_class);//填充班组节点至"树"   
                                    td_class.SelectAction = TreeNodeSelectAction.Expand;//只允许展开  

                                    //【人员】 
                                    DataSet ds_user = new DataSet();//实例化数据集(人员)   
                                    SqlDataAdapter sda_user = new SqlDataAdapter("select [name] from [user] where [pid]=" + ds_class.Tables["class"].Rows[z]["id"] + "", conn);////实例化数据库适配器(人员)   
                                    sda_user.Fill(ds_user, "user");//虚拟表填充到内存   
                                    for (int k = 0; k < ds_user.Tables["user"].Rows.Count; k++)//循环 ds_department.Tables["user"].Rows[k]["name"] 对应的所有人员   
                                    {   
                                        TreeNode td_user = new TreeNode();//实例化班组节点   
                                        td_user.Text = ds_user.Tables["user"].Rows[k]["name"].ToString();//人员节点名称   
                                        td_class.ChildNodes.Add(td_user);//填充人员节点至"树"   
                                        td_user.NavigateUrl = "javascript:void(0)";//选中,但无效   
                                    }   
                                }   
                            } 
                            #endregion 

                            #region 如果人员直接属于某个部门   【情况二】
                            else 
                            {   
                                DataSet ds_user = new DataSet();   
                                SqlDataAdapter sda_user = new SqlDataAdapter("select [name] from [user] where [pid]=" + ds_department.Tables["department"].Rows[j]["id"] + "", conn);   
                                sda_user.Fill(ds_user, "user");   
                                for (int k = 0; k < ds_user.Tables["user"].Rows.Count; k++)   
                                {   
                                    TreeNode td_user = new TreeNode();   
                                    td_user.Text = ds_user.Tables["user"].Rows[k]["name"].ToString();   
                                    td_department.ChildNodes.Add(td_user);   
                                    td_user.NavigateUrl = "javascript:void(0)";   
                                }   
                            } 
                            #endregion   
                        }   
                    }   
                }   
            }   
        } 
       

相关文章推荐

将数据库中数据绑定到TREEVIEW

  • 2009年03月17日 18:21
  • 2KB
  • 下载

Treeview绑定数据库

  • 2013年12月16日 13:35
  • 14KB
  • 下载

TreeView控件动态绑定数据库内容

数据库结构: 表1:FID,DataName两个用到的字段,注意其中DataName为FID的名字 表2:FID,SID,DataName三个用到的字段,注意其中DataName为SID的名字 ...

treeview绑定数据库

  • 2013年05月08日 22:23
  • 2KB
  • 下载

wpf /treeview数据库绑定

  • 2010年05月06日 11:14
  • 1017KB
  • 下载

C# TreeView控件动态绑定数据库

想要形成这种效果的话,首先在数据里面建一张表 create table treedata (id number, context varchar2(50), parentid number); i...

treeview数据库绑定

  • 2009年08月06日 00:06
  • 2KB
  • 下载

WPF中Treeview绑定数据库数据

WPF遍历所有的节点其实和Winform的一样,都是从跟级开始读:这个是我写的一个类,明天在写出来添加删除的来:class BindTreeView { private Dat...

TreeView绑定数据库

  • 2011年03月18日 10:38
  • 177KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【转载百度空间】TreeView绑定数据库
举报原因:
原因补充:

(最多只允许输入30个字)