2012-04-20 15 views
1

odbcを使用してデータベースから情報の列を取得しています。列には1〜9999999の範囲の数値が入ります。次のように、値を3レベル(親、子、孫)のツリービューに整理したいと考えています。データベース値からC#Treeviewを作成する

理想的な構造: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

ご協力いただければ幸いです。
マーク

+2

winforms、wpf、silverlight、wp7、asp.net Webフォーム、またはmvc、またはその他? –

+0

Microsoft Visual C#を使用 – Mark

+1

C#は言語であり、UIフレームワークではありません。 –

答えて

1

これは実際には非常に単純な問題です。

  1. 各番号の.ToString("D7")に電話をかけて、数字のリストを文字列に変換します。
  2. 変換されたリストをソートします。
  3. サブストリング(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に追加します。

連続してギャップを埋める必要がある場合は、余分なロジックが必要ですが、それはかなり簡単です。

関連する問題