Datareaders i rekursive funktioner
Hejsa,jeg har brug for at bruge flere datareaders til samme connection, da jeg har lavet en rekursiv funktion, der bygger en træstruktur ud fra en database. Undervejs i en løkke kaldes funktionen igen, og kalder nu subsettet. Det ser sådan ud:
Private Function concatMenu(ByVal parentidcursor As Integer, ByVal thislevel As Integer) As String
Dim lookfor As Int32 = -1
If parentidcursor < (parentidpath.Count) Then
lookfor = parentidpath.Item(parentidcursor + 1)
End If
Dim tmpstring = ""
sql = "SELECT articleid,title,shortinfo FROM article WHERE websiteid = " & webid & " AND parentid = " & parentidpath.Item(parentidcursor) & " AND NOT ishidden ORDER BY sortorder ASC,revisiontime DESC"
Dim rs As OleDbDataReader = db.ExecuteQuery(sql)
Do While rs.Read
tmpstring = tmpstring & "<h" & thislevel & "><a href='" & url & _
"?articleid=" & rs.GetInt32(0) & _
"'>" & rs.GetString(1) & "</a></h" & thislevel & ">"
If rs.GetInt32(0) = lookfor Then
tmpstring = tmpstring & concatMenu(parentidcursor + 1, thislevel + 1)
End If
Loop
rs.Close()
Return tmpstring
End Function
Desværre resulterer det i, at jeg får en fejlmeddelelse, da der ikke må være flere datareaders på samme connection. Det er noget rod! Hvad er mit alternativ? Skal jeg droppe den rekursive funktion?
