Ciao ragazzi,
sto provando a popolare un asp:menu direttamente dalla tabella categorie che ha al suo interno anche la colonna parent per le sottocategorie.
Purtroppo non riesco a venirne a capo.
Ho trovato un codice di esempio ma viene fatto su tabelle collegate tra di loro (Categorie - > Sottocategorie), e provando a modificarne il codice per le mie necessità non sono riuscito a risolvere.
Vi scrivo il codice qui sotto spero possiate aiutarmi.
Mi dà errore sulla relazione dicendo che la colonna padre e la colonna figlio non corrispondono nelle tabelle.
Grazie mille

codice:
Private Sub PopulateMenu()
        Dim ds As DataSet = GetDataSetForMenu()
        Dim menu As New Menu()

        For Each parentItem As DataRow In ds.Tables("tab_categorie").Rows

            Dim categoryItem As New MenuItem(DirectCast(parentItem("nome_categoria"), String))
            menu.Items.Add(categoryItem)

            For Each childItem As DataRow In parentItem.GetChildRows("Figlio")
                Dim childrenItem As New MenuItem(DirectCast(childItem("nome_categoria"), String))
                categoryItem.ChildItems.Add(childrenItem)
            Next
        Next

        PnlCategorie.Controls.Add(menu)
        PnlCategorie.DataBind()
    End Sub

    Private Function GetDataSetForMenu() As DataSet
        Dim connString As String = WebConfigurationManager.ConnectionStrings("connessione").ToString()
        Dim myConnection As New SqlConnection(connString)
        myConnection.Open()

        Dim adCat As New SqlDataAdapter("SELECT * FROM tab_categorie WHERE parent_categoria = 0", myConnection)
        Dim adProd As New SqlDataAdapter("SELECT * FROM tab_categorie WHERE parent_categoria <> 0", myConnection)

        Dim ds As New DataSet()

        adCat.Fill(ds, "tab_categorie")
        adProd.Fill(ds, "tab_categorie")

        ds.Relations.Add("Figlio", ds.Tables("tab_categorie").Columns("ID_categorie"), ds.Tables("tab_categorie").Columns("parent_categoria"))

        Return ds
    End Function