2011-07-28 41 views
2

に多くの関係に1から単一の値を表示します。は、私は3つのテーブルを持っているのGridView

私は、OrderStatesコレクション内に1つの値、つまり追加された最新のOrderStateを表示しようとしています。

私はサブクエリについて少しは読んだことがありますが、私が望む結果を達成する方法についてはわかりません。

申し訳ありませんが情報の不足、私はテーブル構造のすべてのセットアップがいい画像を持っていましたが、stackoverflowは私にそれをアップロードさせませんでした。

編集 -

[OK]これを行う方法を理解しました。 GridViewが実装されているので、イベントOnRowCreatedを使用して、必要なフィールドのテキストを設定しました。必要なコントロールを得るために、私はe.Row.FindControlを使いました。

最後のコードはかなりシンプルでした。私は最後に助けを求めるとき、いつもこのことを理解しているようです。

try 
    { 
    int orderID = e.Row.RowIndex; 

    Order order = ShopEntities.Orders.Single(o => o.OrderStateID == orderID); 
    // I can now get the list of orderstates 
    OrderStateDefinition osd = order.OrderStates.OrderBy(o => o.Date).Last().OrderStateDefinition; 

    ((Label)e.Row.FindControl("Label2")).Text = osd.State; 
    } 
    catch 
    { 
    } 
+0

どのOrderStateが最新であるかをどのように判断すると思いますか? OrderStatesテーブルにCreatedOnフィールドのようなものがありますか? –

+1

idの 'max'を取得するか、最新のものであることを示す' OrderStates'のタイムスタンプを取得します。 – V4Vendetta

+0

3つのテーブルすべての構造を指定すると、より良いでしょう。 – suryakiran

答えて

0

これを行う独自のSQLを作成する方が簡単です。 SQLは少し複雑かもしれませんが、C#を使っているよりも簡単です。

関連する問題