Rekursive abfrage und Treeview füllen

30/07/2009 - 13:57 von andi rickenbach | Report spam
Hallo,

ich habe eine Tabelle T_Tree welche wie folgt aufgebaut ist:
RecordID int
ParentRecordID int
TreeTitle nvarchar(50)

Mit diesem Aufbau möchte ich ein Treeview in vb.net oder C# abfüllen. Ich
denke mit einer schlauen SP kann man die Daten rekursiv auslesen und das
Treeview füllen.

Hat das jemand schon gemacht? Wie würde die SP aussehen und wie würde man
das Treeview füllen?

Vielen Dank für einige Tipps.
 

Lesen sie die antworten

#1 Christoph Ingenhaag
30/07/2009 - 14:43 | Warnen spam
"andi rickenbach" wrote:

Hallo,

ich habe eine Tabelle T_Tree welche wie folgt aufgebaut ist:
RecordID int
ParentRecordID int
TreeTitle nvarchar(50)

Mit diesem Aufbau möchte ich ein Treeview in vb.net oder C# abfüllen. Ich
denke mit einer schlauen SP kann man die Daten rekursiv auslesen und das
Treeview füllen.

Hat das jemand schon gemacht? Wie würde die SP aussehen und wie würde man
das Treeview füllen?

Vielen Dank für einige Tipps.



Hallo Andi,

schau dir das mal an:

;with cte as
(
select
RecordID,
ParentRecordID,
TreeTitle,
1 Ebene,
cast('/' as varchar(max)) Path
from T_Tree
where
ParentRecordID is NULL

union all

select
T.RecordID,
T.ParentRecordID,
T.TreeTitle,
C.Ebene + 1 Ebene,
C.Path + cast(C.Ebene as varchar(12)) + '/' Path
from T_Tree T
inner join cte C
on
C.RecordID = T.ParentRecordID
)
select *
from cte

Wenn du SQL Server 2008 hast, dann kannst du für solche Fàlle auch den
Datentyp HierarchyID benutzen. Dabei hàttest du zusàtzlich die Information,
an welcher Stelle der untergeordnete Knoten sitzt (quasi eine definerte
Sortierung oder Geschwister) und einfache und vor allem sehr schnelle
Möglichkeit auf diese Daten zuzugreifen. Wàre bei einem Treeview ja ganz
nützlich...

Viele Grüße
Christoph

Ähnliche fragen