2011-07-28 30 views
2

我有3個表:顯示從一個單一的值,以一對多的關係在GridView

訂單, OrderStates, OrderStateDefinition

定單已經許多OrderStates然後具有一個OrderStateDefinition。

我有一個GridView,我試圖在OrderStates集合中顯示一個值 - 最新的OrderState已被添加。

我讀過一些關於子查詢的內容,但我不確定如何去實現我想要的結果。

對不起,缺乏信息,我有一個很好的圖片設置表結構的所有設置,但stackoverflow不會讓我上傳它。

編輯 -

好吧我想通了如何做到這一點。當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'的時間戳,它表明它是最新的並且使它成爲你的where子句的一部分 – V4Vendetta

+0

如果給出所有3個表的結構,會更好。 – suryakiran

回答

0

我經常發現創建自己的SQL更容易。 sql可能有點複雜,但比使用c#更容易。