从数据库值创建C#Treeview

时间:2012-04-20 19:05:33

标签: c# database winforms treeview odbc

我通过odbc从数据库中提取一列信息。该列的编号范围为1到9999999.我希望能够通过以下方式将值组织到最多3个级别(父级,子级和孙级)的树视图中:

理想的结构是:AAABBCC
父母:AAA0000
孩子:AAABB00
孙子:AAABBCC

但是如果上面的级别不存在,则值会在一个级别上移动。例如,假设数据包含以下{1,101,200,204,1200,1205,1304,290000,291500,291502,410204}

- 1
- 101
- 200
------- 204
--1200
------- 1205
--1304
--290000
-------- 291500个
---------------- 291502个
--410204

非常感谢任何帮助 标记

1 个答案:

答案 0 :(得分:1)

这是一个非常简单的问题。

  1. 通过在每个号码上调用.ToString("D7"),将您的号码列表转换为字符串。
  2. 对转换后的列表进行排序。
  3. 获取SubString(0,3)以获取您的父值。
  4. 使用SubString(3,2)获取您的孩子价值。
  5. 获取子串(5,2)以获得您的孙子值。
  6. 如果您的子值为00,请创建一个新的TreeNode parentNode并将其添加到TreeNodeCollection。
  7. 如果您的子值不是00且您的孙子值为00,请创建一个新的TreeNode childNode并将其添加到parentNode。
  8. 如果您的孙子值不是00,请创建一个新的TreeNode grandchildNode并将其添加到您的childNode。
  9. 如果你需要按顺序填补空白,需要一些额外的逻辑,但这是相当微不足道的。