有关treeview问题,很急,

xyfeng78 2003-08-20 04:17:27
代码如下:
数据库数据:
NodeID TASK PARENTID
1 我的工作 0
2 日常业务 1
3 采购入库单2
4 成品入库 2
5 采购增加 3


Public Shared dv As DataView '全局变量已获得数据

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
Call MyDbConnInit()

If Not IsPostBack Then
Call CreateDV()
Call InitTree(TreeView1.Nodes, 0)
End If
End Sub

Private Sub InitTree(ByRef Nds As TreeNodeCollection, ByVal parentId As Integer)

Dim drv As DataRowView
Dim tmpNd As TreeNode

dv.RowFilter = "ParentID='" & parentId & "'"

For Each drv In dv
tmpNd = New TreeNode()
tmpNd.ID = drv("NodeID")
tmpNd.Text = drv("Task")
Nds.Add(tmpNd)
InitTree(Nds(Nds.Count - 1).Nodes, tmpNd.ID)
Next

End Sub


为什么出现错误:
异常详细信息: System.IndexOutOfRangeException: 在位置 1 处没有任何行。
已debug,发现当tmpNd.ID=6时,出现此错误,怎么办,快救我!!
...全文
81 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
seesea125 2003-08-21
  • 打赏
  • 举报
回复
昨天回去我用vb调试了一下,程序和你的一样,却没有出现这样的问题,我建了8级都没有问题,我想有可能是数据库或treeview的属性设置问题,需要的话QQ传给你我的代码和数据库看看
yuanylong 2003-08-21
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2093/2093882.xml?temp=5.254763E-02
xyfeng78 2003-08-21
  • 打赏
  • 举报
回复
http://www.aspalliance.com/jamesavery/webcontrols/treeviewp2.aspx
xyfeng78 2003-08-20
  • 打赏
  • 举报
回复
http://www.developersdex.com/gurus/articles/407.asp?Page=2
pp1234567890 2003-08-20
  • 打赏
  • 举报
回复
ds怎么没有声明,我生命了,却没有显示,这是怎么了???
xyfeng78 2003-08-20
  • 打赏
  • 举报
回复
up
xyfeng78 2003-08-20
  • 打赏
  • 举报
回复
up
xyfeng78 2003-08-20
  • 打赏
  • 举报
回复
up
seesea125 2003-08-20
  • 打赏
  • 举报
回复
我的QQ:12533391,明天我帮你调试把
xyfeng78 2003-08-20
  • 打赏
  • 举报
回复
没人会啊,急死了
xyfeng78 2003-08-20
  • 打赏
  • 举报
回复
to seesea125(雨天) ,如果改为strid,,则代和我的一样啊,可就是不行,
快帮我啊
pp1234567890 2003-08-20
  • 打赏
  • 举报
回复
楼上的,能不能给我份完整的VB代码,我会C#昨天改用C#改,改不成,谢谢
seesea125 2003-08-20
  • 打赏
  • 举报
回复
Private Sub CreateDataSet()’建立数据集
Dim myConn As New SqlConnection()
Dim myCmd As New SqlCommand("select NODEID,NODENAME,PARENTID,ADDRESS,ICON from Tree_info", myConn)
Dim myDataAdapter As New SqlDataAdapter()
myConn.ConnectionString = Application("connectstring")
myCmd.CommandText = ""
myCmd.Connection = myConn
myDataAdapter.SelectCommand = myCmd
myDataAdapter.Fill(ds, "tree")
End Sub
这些代码是别人的,我知道里面有毛病啊,我用c#改好了的,他的思路是正确的,错误的地方就是把intiTree(Nds(Nds.Count - 1).Nodes, intId) 换成intiTree(Nds(Nds.Count - 1).Nodes, strId) ,其它语法错误也写错了好几个,你自己看看把,要是需要c#的我倒可以给你帖一下
pp1234567890 2003-08-20
  • 打赏
  • 举报
回复
CreateDataSet() 这个怎么没有代码,能不能让看看
xyfeng78 2003-08-20
  • 打赏
  • 举报
回复
up快来解决啊
xyfeng78 2003-08-20
  • 打赏
  • 举报
回复
没有少写东西啊,你的代码,intid永远等于0,肯定不对。
seesea125 2003-08-20
  • 打赏
  • 举报
回复
你少写东西了,看看范例
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
CreateDataSet()
intiTree(TreeView1.Nodes, 0)
End Sub
Private Sub intiTree(ByRef Nds As TreeNodeCollection, ByVal parentId As Integer)
Dim dv As New DataView()
Dim drv As DataRowView
Dim tmpNd As TreeNode
Dim intId As Integer
dv.Table = ds.Tables("tree")
dv.RowFilter = "PARENTID=’" & parentId & "’"
For Each drv In dv
tmpNd = New TreeNode()
strId = drv("NODE_ID")
tmpNd.ID = strId
tmpNd.Text = drv("NODE_NAME ")
tmpNd.ImageUrl = drv("ICON").ToString
Nds.Add(tmpNd)
intiTree(Nds(Nds.Count - 1).Nodes, intId)
Next
End Sub
acewang 2003-08-20
  • 打赏
  • 举报
回复
代码没有处理数据集为空的情况,仍然去帮定所以就报错
xyfeng78 2003-08-20
  • 打赏
  • 举报
回复
up

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧