由于当前连接没关闭,而只能有一个活动连接(SQL SERVER)就不会有这种麻烦。应该用DATASET或者干脆把所以记录一次性放入数组

解决方案 »

  1.   

    不想用dataset,有没有什么好的解决方法?
      

  2.   

    下面的例子经过本人调试成功。 数据库的表结构是cur_id,par_id,f_name.其中:所有的根结点的par_id为-1;而且所有的字段均为VARCHAR2类型。
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '在此处放置初始化页的用户代码
            If Not IsPostBack Then
               intiTree(TreeView2.Nodes, "-1")
            End If
        End Sub Private Sub intiTree(ByRef Nds As TreeNodeCollection, ByVal parentId As String)
            Dim sql As String = "select * from xj.treeview where par_id='" + parentId + "'"
            Dim myDataAdapter As New OleDbDataAdapter(sql, con)
            Dim ds As New DataSet()
            myDataAdapter.Fill(ds, "tree")
            Dim mydatable As DataTable
            mydatable = ds.Tables("tree")
            If mydatable.Rows.Count = 0 Then
                Exit Sub
            End If
            Dim drv As DataRowView
            Dim tmpNd As TreeNode
            For Each drv In mydatable.DefaultView
                tmpNd = New TreeNode()
                Dim strid As String
                strid = drv("CUR_ID")
                tmpNd.ID = strid
                tmpNd.Text = drv("F_NAME")
                Nds.Add(tmpNd)
                intiTree(tmpNd.Nodes, strid)
            Next
        End Sub
      

  3.   

    http://www.chinabs.net/aspnet/default.asp?infoid=68