Soru & Cevap

C# sql den treeview veri çekmek

16.05.2021 - 03:32

İşaretli alanlarında açılıp kapanmasını istiyorum. Bir türlü yapamadım.

Bu konuda yardımlarınızı beklerim.

196 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user sevgii
sevgii
31.12.2022 - 12:02

Çözüme ulaşabildiniz mi?

Profile picture for user karcan
karcan
21.05.2021 - 02:35

Merhaba, 

C# tarafı için değil de, SQL tarafında benzer bir çalışma yapmıştım. HierarchyId , Level ve Breadcrumb olarak sonuçları döndüren bir örnek. 

HierarcyId için C#'ta Nested'a dönüştürmenin bir yolunu bulabilirsin diye düşünmekteyim.

Kodlara github'dan bakmak istersen : https://github.com/karcan/pinch-of-TSQL/blob/master/best%20practices/Id%20%26%20ParentId%20to%20Leveled%20Result.sql

DECLARE @Categories table (Id int, ParentId int, Title varchar(25))

INSERT INTO @Categories VALUES 
(1,0,'Technologies'),
	(2,1,'Frontend'),
		(3,2,'Angular'),
			(4,3,'AngularJS'),
			(5,3,'Angular2'),
		(6,2,'ReactJS'),
	(7,1,'Backend'),
		(8,7,'C#'),
		(9,7,'Java'),
		(10,7,'Python');

WITH Tree AS(
SELECT *, Level = '/' + CAST(Parent.Id as nvarchar(max)) + '/', Breadcrumb = CAST(Parent.Title as nvarchar(max))
FROM @Categories as Parent
WHERE ParentId = 0
UNION ALL
SELECT Child.*, Level = Level + CAST(Child.Id as varchar) + '/', Breadcrumb = Breadcrumb + ' / ' + Child.Title
FROM Tree as Parent
JOIN @Categories as Child ON Child.ParentId = Parent.Id
)
SELECT Tree.Id,
Tree.ParentId,
Tree.Title,
Tree.Breadcrumb,
Tree.Level,
CAST(Level as hierarchyid) as HierarchyId 
FROM Tree
ORDER BY Level