简体   繁体   中英

WFA - C# and TreeView from SQL Server

I have populating a treeView control in a windows application using SQL Server and C#:

CREATE TABLE [dbo].[myTable]
(
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [title] [varchar](255) NOT NULL,
    [parentID] [int] NULL, 

    CONSTRAINT [PK_myTable] 
        PRIMARY KEY CLUSTERED ([ID] ASC)
)

Insert some hierarchal data

SET IDENTITY_INSERT myTable ON 
GO 

INSERT INTO myTable(ID, title, parentID) 
VALUES(1, 'Microsoft', NULL) 

INSERT INTO myTable(ID, title, parentID) 
VALUES(2, 'C#', 1) 

INSERT INTO myTable(ID, title, parentID) 
VALUES(3, 'VB.net', 1) 

INSERT INTO myTable(ID, title, parentID) 
VALUES(4, 'Open Source', NULL) 

INSERT INTO myTable(ID, title, parentID) 
VALUES(5, 'Python', 4) 

INSERT INTO myTable(ID, title, parentID) 
VALUES(6, 'Ruby', 4) 

INSERT INTO myTable(ID, title, parentID) 
VALUES(7, 'PHP', 4) 

INSERT INTO myTable(ID, title, parentID) 
VALUES(8, 'Perl', 4) 

INSERT INTO myTable(ID, title, parentID) 
VALUES(9, 'Java', 4) 

INSERT INTO myTable(ID, title, parentID) 
VALUES(10, 'LinQ', 2) 

INSERT INTO myTable(ID, title, parentID) 
VALUES(11, '5.2', 7) 

INSERT INTO myTable(ID, title, parentID) 
VALUES(12, '4.4', 7) 
GO 

SET IDENTITY_INSERT myTable OFF 
GO

Define a root value

CREATE PROCEDURE viewMyTable 
AS 
BEGIN
    SELECT ID, title, ISNULL(parentID, 0) AS parentID
    FROM myTable 
END

Add a same table key contraint.

ALTER TABLE [dbo].[myTable] WITH CHECK 
    ADD CONSTRAINT [FK_myTable_myTable] 
    FOREIGN KEY([parentID]) REFERENCES [dbo].[myTable] ([ID]) 
GO 

ALTER TABLE [dbo].[myTable] CHECK CONSTRAINT [FK_myTable_myTable]

And there is nothing in treeview. Can anyone help me?

enter image description here

enter image description here

Hope this help you.

WITH f(ID, Title, Level, Sort)
AS(
    SELECT ID, Title, 0 AS Level, ROW_NUMBER() OVER(ORDER BY ID) AS Sort
    FROM myTable
    WHERE parentID IS NULL

    UNION ALL

    SELECT B.ID, B.Title, A.Level + 1, A.Sort
    FROM f A, myTable B
    WHERE A.Id = B.parentID
)
SELECT * 
FROM f 
ORDER BY Sort, Level

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM