2

これが私の現在の問題です。リコール名簿を表示する構造のようなツリーを表示する必要があります。DBAは、[level]、[name]、[contact_info]を返すストアドプロシージャを作成しました。

例は次のようになります。

[1] [test name1] [contact info]
[2] [sub to1] [contact info]
[3] [sub to2] [contact info]
[4] [sub to3] [contact info]
[3] [sub to2] [contact info]
[2] [sub to1] [contact info]

等...

階層順にソートされています

私は実際にはXMLをあまり使用していませんが、このデータのロード/表示を行う方法です。現在、データを取得すると、データテーブルに返されます。このデータをExcelにエクスポートする必要がある場合もあります。

誰かが私にこれで行くための良い方向を示すことができますか?

4

1 に答える 1

0

1) 確立および操作できないデータ結果の順序を信頼しないでください。ストアド プロシージャからデータを取得する「標準的な」方法は、datareader、datatable、または dataset です。Entity Framework を使用してデータをカプセル化することもできます。それらのどれも、順序が保持されることを保証しません。結果セットが順序付けられると仮定するのはリスクが高すぎます。

2) DBA に、結果に階層情報を含めるように依頼します (たとえば、親レコードのキーを持つフィールド)。

3) 再帰は階層問題に適しています。xml ノードと一連の最上位レコードから開始するようにアルゴリズムを設計します。各レコードに対して: 新しい xmlnode を追加し、追加したばかりのレコードの子を渡す再帰呼び出しを行います。

4) 予想される結果が小さい場合 (数百レコードなど)、すべてのデータを取得してデータテーブルに保存し、Filter プロパティを使用して特定のレコードを検索できます。予想される結果が数千のレコードである場合は、DBA にストア プロシージャを作成して 1 つのレコードの子を読み取り、xml ノードの各レコードに対してそのようなプロシージャを呼び出すよう依頼してください。データにループがないことを確認してください:)

于 2012-10-15T15:38:37.203 に答える