CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

请教关于vs2005中treeview的数据绑定的使用

楼主honeyrose(redrose)2006-07-10 07:47:14 在 .NET技术 / C# 提问

查找了以前的帖子,没太看明白。  
   
  描述:  
  添加了一个treeview,选择数据源只有xml和站点地图。主要是为了以后管理方便,我想把数据表中的数据绑定到treeview。  
  数据表的结构是id,content,parentid,isleaf  
                              1           学校           0               0  
                              2           班级1         1               0  
                              3           班级2         1               0  
                              4           学生1         1               0  
   
  想显示出         学校-班级1-学生1  
                                  -班级2  
   
  问题:这样的数据结构是否合理,又该怎么直接绑定到数据表呢?  
  问题点数:50、回复次数:9Top

1 楼honeyrose(redrose)回复于 2006-07-10 08:11:43 得分 0

是websiteTop

2 楼fxnet2000(大漠孤烟直)回复于 2006-07-10 08:50:04 得分 0

帮顶!Top

3 楼honeyrose(redrose)回复于 2006-07-10 09:19:25 得分 0

谢谢Top

4 楼yf1025(小桥,流水,人家)回复于 2006-07-10 09:44:08 得分 50

你想做成这样:  
        学校  
              班级1  
                      学生1  
              班级2  
                      学生2  
  ?  
  如果是的话表的id改一下,id,           content,         parentid,         isleaf  
                                                    1                   学校                   0                       0  
                                                    102               班级1                 1                       0  
                                                    103               班级2                 1                       0  
                                                    102004         学生1                 102                   0  
                                                    102005         学生2                 102                   0  
                                                    103004         学生4                 103                   0  
                                                    103005         学生5                 103                   0  
  在用这个方法:  
  private   void   BindTreeView()  
          {  
                  int   i   =   0;  
                  string   sqlstr   =   db.GetConnectionString();  
                  try  
                  {  
                          using   (SqlConnection   conn   =   new   SqlConnection(sqlstr))  
                          {  
                                  conn.Open();  
                                  SqlCommand   comm   =   new   SqlCommand("select   *   from   Department",   conn);  
                                  SqlDataReader   reader   =   comm.ExecuteReader();  
                                  while   (reader.Read())  
                                  {  
                                          int   j   =   0;  
                                          //添加父节点  
                                          TreeView1.Nodes.Add(new   TreeNode(reader[1].ToString(),reader[0].ToString()));  
                                          using   (SqlConnection   mycon   =   new   SqlConnection(sqlstr))  
                                          {  
                                                  mycon.Open();  
                                                  SqlCommand   mycom   =   new   SqlCommand("select   id,dutyName   from   duty   where   deptID   =   @deptID",   mycon);  
                                                  mycom.Parameters.Add("@deptID",   reader[0].ToString());  
                                                  SqlDataReader   myreader   =   mycom.ExecuteReader();  
                                                  while   (myreader.Read())  
                                                  {  
                                                          //添加子节点  
                                                          TreeView1.Nodes[i].ChildNodes.Add(new   TreeNode(myreader[1].ToString(),myreader[0].ToString()));  
                                                          using   (SqlConnection   sqlcon   =   new   SqlConnection(sqlstr))  
                                                          {  
                                                                  sqlcon.Open();  
                                                                  SqlCommand   sqlcom   =   new   SqlCommand("select   userID,username   from   userview   where   dutyID   =   @dutyID",   sqlcon);  
                                                                  sqlcom.Parameters.Add("@dutyID",   myreader[0].ToString());  
                                                                  SqlDataReader   sqlreader   =   sqlcom.ExecuteReader();  
                                                                  while   (sqlreader.Read())  
                                                                  {  
                                                                          TreeView1.Nodes[i].ChildNodes[j].ChildNodes.Add(new   TreeNode(sqlreader[1].ToString(),sqlreader[0].ToString()));  
                                                                  }  
                                                          }  
                                                          j   =   j   +   1;  
                                                  }  
                                          }  
                                          i   =   i   +   1;  
                                  }  
                          }  
                          this.TreeView1.CollapseAll();  
                          this.TreeView1.ShowCheckBoxes   =   TreeNodeTypes.All;  
                  }  
                  catch   (Exception   ex)  
                  {  
                          Response.Write(ex.Message);  
                  }  
          }  
  这个treeview是2005下的  
   
     
  Top

5 楼honeyrose(redrose)回复于 2006-07-10 09:58:56 得分 0

我看看,谢谢!Top

6 楼honeyrose(redrose)回复于 2006-07-11 07:39:06 得分 0

我的数据库是sqlserver2003,连接时出现了错误在:  
  建立与服务器的连接时出错。在连接到   SQL   Server   2005   时,在默认的设置下   SQL   Server   不允许进行远程连接可能会导致此失败。   (provider:   命名管道提供程序,   error:   40   -   无法打开到   SQL   Server   的连接)   。我打开了tcpip还是同样的错误  
   
  请问vs2005能使用sqlserver2003吗?Top

7 楼honeyrose(redrose)回复于 2006-07-11 07:40:54 得分 0

把yf1025的代码改了改,运行时连不上SQL   Server   2005   。而我的数据是在   sqlserver2003。Top

8 楼whb963(ddd)回复于 2006-08-21 17:59:05 得分 0

string   str="select   bh   ,mc   from   kmb   where   bs='n'";  
      DataSet   ds   =   datacon.Base.ExecuteSql4Ds(str);  
   
      treeView1.Nodes.Clear();  
                      int   i   ,j   ;  
  for   (i=0   ;i<ds.Tables[0].Rows.Count;i++)    
  {  
        TreeNode   temND   =new   TreeNode(ds.Tables[0].Rows[i]["bh"].ToString()   +'   '+   ds.Tables[0].Rows[i]["mc"].ToString());  
   
  string   str1="   select   bh,mc,sjbh   from   kmb2   where   bs='n'   and   sjbh=   '   "+   ds.Tables[0].Rows[i]["bh"].ToString()+"'";  
  MessageBox.Show(str1);  
  DataSet   dsM   =   datacon.Base.ExecuteSql4Ds(str1);  
   
  for   (j=0   ;j<dsM.Tables[0].Rows.Count;j++)      
  {  
  TreeNode   temC   =new   TreeNode(dsM.Tables[0].Rows[j]["bh"].ToString()+'   '+   dsM.Tables[0].Rows[j]["mc"].ToString());  
  //   dsM.Clear();  
    temND.Nodes.Add(temC)   ;  
  }  
  dsM.Clear();  
    treeView1.Nodes.Add(temND);      
  }Top

9 楼whb963(ddd)回复于 2006-08-22 14:46:48 得分 0

string   str="select   bh   ,mc   from   kmb   where   bs='n'";  
      DataSet   ds   =   datacon.Base.ExecuteSql4Ds(str);  
   
      treeView1.Nodes.Clear();  
                      int   i   ,j   ;  
  for   (i=0   ;i<ds.Tables[0].Rows.Count;i++)    
  {  
        TreeNode   temND   =new   TreeNode(ds.Tables[0].Rows[i]["bh"].ToString()   +'   '+   ds.Tables[0].Rows[i]["mc"].ToString());  
   
  string   strSQL="   select   bh   ,mc   ,sjbh   from   kmb2   where   bs='n'   and   sjbh=   '"+   ds.Tables[0].Rows[i]["bh"].ToString()+"'";  
  DataSet   dsM   =   datacon.Base.ExecuteSql4Ds(strSQL);  
   
  for   (j=0   ;j<dsM.Tables[0].Rows.Count;j++)      
  {  
  TreeNode   temC   =new   TreeNode(dsM.Tables[0].Rows[j]["bh"].ToString()+'   '+   dsM.Tables[0].Rows[j]["mc"].ToString());  
    temND.Nodes.Add(temC)   ;  
  }  
    treeView1.Nodes.Add(temND);      
  }  
                       
  }  
   
  这个我测了,通过了Top

相关问题

关键词

得分解答快速导航

  • 帖主:honeyrose
  • yf1025

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo