如何在C#中使用数据表父级和子级将数据从数据库节点传输到treeveiw

时间:2018-07-23 15:19:53

标签: c# sql-server datatable treeview nodes

我该如何从数据库中获取数据到treeveiw并以父子的方式像树一样显示它 我尝试了下面的代码,但结果不正确100%

    id     name        parent_id
--------------------------------------
    1      Banks        0
    2      Cars         0
    11     Bank1        1
    12     Bank2        1
    111    Acoount1     11
    112    Account2     11
    113    Account3     11
    21     Car1         2
    22     Car2         2
    23     Car3         2

我希望数据是这样的

-Banks
   -Bank1
      -Account1
      -Account2
      -Account3
   -Bank2
-Cars
   -Car1
   -Car2
   -Car3

我通过存储过程从数据库获取数据到DataTable 这是代码

ALTER PROC [dbo].[GET_ALL_ACCOUNTS]

AS


SELECT * FROM ACCOUNTS

我要使用数据表中的数据

DataTable dt = new DataTable();
dt = account.GET_ALL_ACCOUNTS();
foreach (DataRow dr in dt.Rows)
{

   TreeNode node = new TreeNode(dr["id"].ToString());

   node.Nodes.Add(dr["name"].ToString());
   node.Nodes.Add(dr["parent_id"].ToString());

   treeView1.Nodes.Add(node);

}

我希望有人能帮助我

1 个答案:

答案 0 :(得分:0)

您的foreach没有任何与树相关的逻辑。您必须根据id返回的parent_idDataTable构造有效的Tree。例如,查看this逻辑并对其进行修改以满足您的需求。