近日面试的给我两道题目,一道是IQ测试,第二个就是题目所言

总共两个表 department(id int not null primary key,parentid int,name char(50));

employee(id int not null foreign key(id)  references department(id) ,departmentid,name char(50));

实现的代码记录如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient; public partial class Default01 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
fill_Tree(); } void fill_Tree()
{ SqlConnection SqlCon = new SqlConnection("server=(local);uid=sa;pwd=sa;database=test");
SqlCon.Open();
SqlCommand SqlCmd = new SqlCommand("Select id,name from department", SqlCon);
SqlDataReader Sdr = SqlCmd.ExecuteReader();
SqlCmd.Dispose();
string[,] ParentNode = new string[, ]; int count = ; while (Sdr.Read())
{ ParentNode[count, ] = Sdr.GetValue(Sdr.GetOrdinal("id")).ToString();
ParentNode[count++, ] = Sdr.GetValue(Sdr.GetOrdinal("name")).ToString(); } Sdr.Close(); for (int loop = ; loop < count; loop++)
{
TreeNode root = new TreeNode();
root.Text = ParentNode[loop, ];
root.Target = "_blank";
root.NavigateUrl = "Default01.aspx"; SqlCommand Module_SqlCmd = new SqlCommand("Select name,id from employee where departmentid =" + ParentNode[loop, ], SqlCon); SqlDataReader Module_Sdr = Module_SqlCmd.ExecuteReader(); while (Module_Sdr.Read())
{ TreeNode child = new TreeNode(); child.Text = Module_Sdr.GetValue(Module_Sdr.GetOrdinal("name")).ToString(); child.Target = "_blank"; child.NavigateUrl = "Default01.aspx"; root.ChildNodes.Add(child); } Module_Sdr.Close(); TreeView1.Nodes.Add(root); } TreeView1.CollapseAll();
SqlCon.Close(); } protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{ }
}

C# 中的treeview绑定数据库(递归算法)的更多相关文章

  1. c# 在datagridview中添加comboboxcolumn 绑定数据库读取显示数据

    datagridview中的comboboxcolumn 从绑定的数据库中读取显示时,只需要注意一点,就是sql语句加个 CStr() 字符串转换函数即可,如下: SELECT CStr(XXX) a ...

  2. Ext.net中Combobox如何绑定数据库中的值-通用方法

    今天在项目中再次碰到了问题,就是Combobox中的值如果是直接绑定很简单.简单添加项就行了.代码如下: <ext:ComboBox ID=" /> </Items> ...

  3. Winform中的Treeview动态绑定数据库

    http://bbs.csdn.net/topics/370139193 SQL code   ? 1 2 3 4 5 6 CREATE TABLE [dbo].[Company] (     [Id ...

  4. Ext.net中Combobox如何绑定数据库中的值

    ];      ];      " />       </Items> </ext:ComboBox>

  5. TreeView树形控件递归绑定数据库里的数据

    TreeView树形控件递归绑定数据库里的数据. 第一种:性能不好 第一步:数据库中查出来的表,字段名分别为UNAME(显示名称),DID(关联数据),UTYPE(类型) 第二步:前台代码 <% ...

  6. 理解asp.net中DropDownList编辑数据源,绑定数据库数据。

    一.理解asp.net绑定数据库 终于学习到了连接数据库部分的内容,杨中科老师视频看起来挺轻松的,如果是高清版就更ok了. 我发现我学习新的编程语言会有一个特点,都想要赶紧学习数据库,数据就是一切,有 ...

  7. silverlight中 ComboBox绑定数据库,并获取当前选定值

    silverlight中 ComboBox绑定数据库,并获取当前选定值 在silverlight中 用combobox下拉菜单绑定数据库的方法和用DataGrid绑定数据库的方法类似. page.xa ...

  8. .net中的TreeView的数据绑定与EasyUi_tree的数据绑定

    昨天看到了.net中的TreeView,学习了一波TreeView的数据绑定,联想到EasyUi中的Tree的数据,觉得里面的逻辑差不多,就总结了一下两者的数据绑定. 前端页面和必要的JS如下 < ...

  9. MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件

    类似于多层级的角色与权限控制功能,用MVC实现MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件.最近我们的项目中需要用到树型菜单,以前使用WebForm时,树型菜单有微软提供的 ...

随机推荐

  1. knockoutjs 静动态数据、行为绑定,计算属性及Sync同步更新 Value值更新事件控制

    data-bind="text: firstName"中data-bind属性是Knockout 用来显示关联UI和viewmodel的桥梁, text 表示把绑定的文本赋值给DO ...

  2. C#指南,重温基础,展望远方!(13)C#泛型

    一.什么是泛型? 泛型是 2.0 版 C# 语言和公共语言运行库 (CLR) 中的一个非常重要的新功能. 我们在编程程序时,经常会遇到功能非常相似的模块,只是它们处理的数据不一样.但我们没有办法,只能 ...

  3. MS SQL自定义函数IsPositiveInteger MS SQL自定义函数IsNumeric 水晶报表使用IEnumerable<T>数据源

    MS SQL自定义函数IsPositiveInteger   判断字符串是否为正整数,0开始的的数字不算. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON ...

  4. python --批量重命名文件名

    # -*- coding: utf-8 -*- import os path = "d:\\curl\data\\" for file in os.listdir(path): p ...

  5. c#+mysql 中文乱码

    c#+mysql 中文乱码 遇到一个奇怪的问题,C#读取mysql中文正常,写入时发生乱码 网上查阅原因,发现如下信息 ---------------------------------------- ...

  6. C#:列表视图操作类

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...

  7. ztree获取选中节点

    $(document).ready(function(){ $.fn.zTree.init($("#treeDemo"), setting, zNodes); }); functi ...

  8. 打开office提示还有几天过期的处理办法

    是多重激活了,把激活码失效的删除即可 1.以管理员权限打开cmd(必须以管理员权限,不然无法删除无效的激活码) 2.输入命令:cd C:\Program Files (x86)\Microsoft O ...

  9. 第7章 Iptables与Firewalld防火墙。

    第7章 Iptables与Firewalld防火墙.     Chapter7_听较强节奏的音乐能够让您更长时间的投入在学习中. <Linux就该这么学> 00:00/00:00     ...

  10. 电影大全 API接口

    http://www.apix.cn/services/show/29 http://www.apix.cn/services/show/112