| ■No59207 (ちか さん) に返信
回答ついた後にその部分を編集されてしまうと、回答した内容が変に なってしまうので編集でなく回答に対し回答を書いたほうがスレの流れが 分かりやすいかと思います。
ルートの商品は使用商品に含まれていない商品でよいのでしょうか? Select A.* From テーブル A left join テーブル B on A.商品コード = B.使用商品 Where B.使用商品 is Null
商品の使用商品を取得 Select A.* From テーブル A Where A.商品コード = <商品コード>
これを繰り返し実行していくことになると思います。TreeNodeを作成しながら上から下に 順番に実行していき使用商品のカウントが0になったら次のNodeへ進むと良いと思います。
一気に取得してDataTableで検索してもよいでしょう。
TreeNodeの派生クラスを使用するかTagに商品コードを格納するとNodeを取得したときに商品コードを 取得することが出来ます。
Root ├Node1 │ ├Node1-1 │ └Node1-2 ├Node2 │ ├Node2-1 │ │└Node2-1-1 │ └Node2-2 └Node3
となっていたとすると (1)RootからNode1,Node2,Node3を取得する (2)Node1からNode1-1,Node1-2を取得する (3)Node1-1について使用商品を取得する。ないので次へ (4)Node1-2についても同様 (5)Node2からNode2-1,Node2-2を取得する (6)Node2-1からNode2-1-1を取得する (7)Node2-1-1について使用商品を取得する。ないので次へ (8)Node2-2について使用商品を取得する。ないので次へ (8)Node3について使用商品を取得する。ないので次へ
という順番で検索していくとよいと思います。
|