读取数据库绑定到Treeview的问题,求高手指点

问题描述

代码如下:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Data.SqlClient;usingSystem.Data;publicpartialclass_Default:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){SqlConnectionconn=newSqlConnection(@"server=192.168.0.226;database=discuz;uid=sa;pwd=841102");conn.Open();stringsqltxt=@"selectlayer,namefromdnt_forums";SqlCommandcmd=newSqlCommand(sqltxt,conn);SqlDataReadermyread=cmd.ExecuteReader();DataTabledt=newDataTable();dt=ConvertToDataTable(myread);TreeViewBind(dt);}privatevoidTreeViewBind(DataTabledt){DataRow[]rows=dt.Select("layer=0");foreach(DataRowdrvinrows){TreeNodenode=newTreeNode();node.Text=drv["name"].ToString();node.Value=drv["layer"].ToString();node.NavigateUrl="AddAdmin.aspx?id="+node.Value;node.Target="info";node.Expanded=false;TreeView1.Nodes.Add(node);}TreeView1.DataBind();}privatevoidAddchildtree(DataTabledt,TreeNodenode){DataRow[]rows=dt.Select("layer=1");foreach(DataRowrowinrows){TreeNodechildnode=newTreeNode();childnode.Text=row["name"].ToString();childnode.Value=row["layer"].ToString();childnode.NavigateUrl="AddAdmin.aspx?id="+childnode.Value;childnode.Target="info";childnode.Expanded=false;node.ChildNodes.Add(childnode);Addchildtree(dt,childnode);}}publicDataTableConvertToDataTable(SqlDataReaderdataReader){DataTabledt=newDataTable();DataTableschemaTable=dataReader.GetSchemaTable();try{//动态构建表,添加列foreach(DataRowdrinschemaTable.Rows){DataColumndc=newDataColumn();//设置列的数据类型dc.DataType=dr[0].GetType();//设置列的名称dc.ColumnName=dr[0].ToString();//将该列添加进构造的表中dt.Columns.Add(dc);}//读取数据添加进表中while(dataReader.Read()){DataRowrow=dt.NewRow();//填充一行数据for(inti=0;i<schemaTable.Rows.Count;i++){row[i]=dataReader[i].ToString();}dt.Rows.Add(row);row=null;}dataReader.Close();schemaTable=null;returndt;}catch(Exceptionex){//抛出异常thrownewException(ex.Message);}}}

现在能绑定根节点并显示,但是子节点要怎么调用搞不懂,Addchildtree()这个方法怎么用?

解决方案

解决方案二:
这个刚好适合:
解决方案三:
子节点要在添加一个父节点的时候调用
解决方案四:
引用2楼change_l的回复:

子节点要在添加一个父节点的时候调用

能不能具体说下要怎么用?我是新手+自学,没人指导,学得好吃力
解决方案五:
引用1楼sdl2005lyx的回复:

这个刚好适合:WinForm中TreeView数据绑定

谢谢这位大哥,我好好看下
解决方案六:
引用1楼sdl2005lyx的回复:

这个刚好适合:WinForm中TreeView数据绑定

解决方案七:
privatevoidTreeViewBind(DataTabledt){DataRow[]rows=dt.Select("layer=0");foreach(DataRowdrvinrows){TreeNodenode=newTreeNode();node.Text=drv["name"].ToString();node.Value=drv["layer"].ToString();node.NavigateUrl="AddAdmin.aspx?id="+node.Value;node.Target="info";node.Expanded=false;TreeView1.Nodes.Add(node);Addchildtree(dt,node);}TreeView1.DataBind();}

时间: 2024-09-20 00:27:48

读取数据库绑定到Treeview的问题,求高手指点的相关文章

flex+java选择本地文件然后读取文件内容并导入到数据库中,怎么实现啊,求高手指点,,

问题描述 flex+java选择本地文件然后读取文件内容并导入到数据库中,怎么实现啊,求高手指点,,需要实现的功能是:选择本地文件txt或xls的,然后把文件内容导入数据库中,, 解决方案 解决方案二:问错版块了解决方案三:引用1楼p2227的回复: 问错版块了 !!!!!!那应该算哪个版块的,java+flex解决方案四:flex有个块的http://forum.csdn.net/SList/Flex/java一个大版块了,你展开再自己决定啰

php iis mysql-用PHP实现excel数据导入数据库,但是提示500错误,服务器是IIS,求高手指点

问题描述 用PHP实现excel数据导入数据库,但是提示500错误,服务器是IIS,求高手指点 require_once ('PHPExcel.php');require_once ('PHPExcel/IOFactory.php');require_once ('PHPExcel/Reader/Excel5.php');if($_POST['leadExcel'] == ""true""){ $filename = $_FILES['inputExcel']['n

sql server 2008 复制数据库时报包创建错误,求高人指点!

问题描述 sql server 2008 复制数据库时报包创建错误,求高人指点! 使用sql server企业管理器里的复制功能,想把在远程服务器上的DMS数据库给复制到本地的数据库,在进行到包创建的时候报错:错误消息是: No description found (复制数据库向导) 程序位置: 在 Microsoft.SqlServer.Dts.Runtime.Application.FolderExistsOnSqlServer(String strFolderName String str

应用布署在Websphere下后连不上oracle数据库,跪求高手指点,谢谢!

问题描述 我的应在布署在weblogic下可以正常运行,但切换布署到Websphere下后连不上oracle数据库,跪求高手指点,日起如下:谢谢![10-11-1116:31:51:715CST]00000016ConnectionFacEJ2CA0009E:尝试实例化资源ibps使用的ManagedConnectionFactory类com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl时发生异常:java.lang.reflect.In

关于用户和权限设计的问题。。。求高手指点

问题描述 用户和权限应该是每个系统最基本的功能了吧,所以我也想弄清楚,但是目前没清晰的思路~我想的是主要分为:用户people机构organize角色role权限菜单power大概意思是:用户属于某个机构,拥有某些角色,每个角色代表不同的权限,也就是不同的角色显示不同的页面菜单现在的问题是,比如我把用户和机构在数据库设计时做关联,多对一关系,会出现用户表的外键orgNo指向机构表的orgNo,那么机构表的orgNo就要作为主键了,但是实际上,对于机构表来说,orgNo一般是不作为主键的!~这就产

递归-一个比较复杂的级联删除问题 ,求高手指点

问题描述 一个比较复杂的级联删除问题 ,求高手指点 是这样的,现在要做一个通用的删除方法.删除一个配置项和其关联配置项,逻辑很复杂.首先,数据库结构大概是这样的:有N个配置项,每个配置项有一张表,每个配置项通过一个中间表和其他配置项关联.有一对一,也有一对多的.所谓配置项一般都是一种设备,有序列号CI,ROWID来区分标识,每个设备有唯一的CI,但ROWID不唯一,ROWID是递增的,用HISTORY字段来区分是否在用.新增一个设备时是新生成一个CIROWID,HISTORY为1,表示在用.而更

preparedstatement-PreparedStatement 在oracle11g 很慢,求高手指点

问题描述 PreparedStatement 在oracle11g 很慢,求高手指点 原来用oracle xe11访问速度很快,升级到oracle11g,很慢 调试发现只要preparedStatement 使用set方法传递参数,速度就很慢,盼高手指点 具体代码 解决方案 贴出你的查询语句和代码. 你是怎么得到"preparedStatement使用set很慢"的,和什么对比的. 解决方案二: 同一个sql,在xe11里就快,oracle11g就慢,而且发现不用set方法,两个速度

合并排序-两个表各自排序后再按权重合并后排序问题?求高手指点,谢谢.在线等。。

问题描述 两个表各自排序后再按权重合并后排序问题?求高手指点,谢谢.在线等.. 原始需求:这是个仓库自动入库策略, 共6台堆垛机(字段1),同时入库工作,要求根据入库物料在各堆垛机的分布数量,平均分布入库,同时考虑堆垛机入库任务数和繁忙程度.(对物料分布(字段2)查询的结果(如表a查询结果排序)和堆垛机任务数(字段3)查询的结果(表b查询结果排序)分别作比重排序(例如物料分布排序1-6,任务数量排序1-6,两者相加最后综合排序1-6)找出需要入库的堆垛机.) 实现: 表a和表b是2个不同的表,通

vb.net sql查询语句 win7 xp win10 问题!时间函数!求高手指点!

问题描述 我正在写个winform项目,用的vb.net+SqLite.在写到一个查询函数:button1....'查询当天销售合计记录'button1....'查询当天销售合计记录Dimtime1AsDateTime=DateTime.Today()DimstrLabelAsString="selectsum([销售金额])asw,sum([总销售数量])ass,sum([收到金额])ast,sum([合计毛利])asefromXSTJwhere[销售时间]like('"&t