4

を使用してデータベース内のテーブルにバインドされたグリッドビューがありますEntityDataSource。where句に対応するデータベース内のアイテムのみをグリッドビューに入力します。

FRUIT       COLOR   NUMB.SEEDS
ORANGE      ORANGE  3
APPLE       RED     4
ORANGE      ORANGE  2
STRAWBERRY  RED     0

私が望むのは、次のように、NUMB.SEEDS に関して同様の行を合計することです。

FRUIT       COLOR   NUMB.SEEDS
ORANGE      ORANGE  5
APPLE       RED     4
STRAWBERRY  RED     0

ヒントをお願いします。どこから始めればよいかわかりません。

ここに where 句を入れます。

<asp:EntityDataSource ID="MyEfDataSource"
    runat="server" ContextTypeName="MyContext"
    EntitySetName="Fruits" EntityTypeFilter="Fruit"
    AutoPage="true" AutoSort="true" Where="it.idName = @idName">
    <WhereParameters>
        <asp:ControlParameter ControlID="ddlFruit" PropertyName="SelectedValue" Type="Int32" DefaultValue="0" Name="idName" />
    </WhereParameters>
    </asp:EntityDataSource>
4

2 に答える 2

1

SQL ではGROUP BY句を使用します。私はこれがで動作するはずだと思いますEntityDataSource:

<asp:EntityDataSource ID="MyEfDataSource"
    runat="server" ContextTypeName="MyContext"
    EntitySetName="Fruits" EntityTypeFilter="Fruit"
    AutoPage="true" AutoSort="true" 
    Select="it.FRUIT, it.COLOR, SUM(it.[NUMB.SEEDS])"
    Where="it.idName = @idName"
    GroupBy"it.FRUIT, it.COLOR" >
    <WhereParameters>
        <asp:ControlParameter ControlID="ddlFruit" PropertyName="SelectedValue" Type="Int32" DefaultValue="0" Name="idName" />
    </WhereParameters>
    </asp:EntityDataSource>

質問に入力した列に基づいて、「選択」式と「場所」式でフィールドを呼び出していることに注意してください。実際のデータ ソースでは異なる場合があります。

于 2013-03-01T13:58:50.660 に答える
1

イベントにご利用いただけますQueryCreated

<asp:EntityDataSource ID="EntityDataSource1" runat="server" 
    ConnectionString="name=AdventureWorksEntities" 
    DefaultContainerName="AdventureWorksEntities" EnableFlattening="False" 
    EntitySetName="FRUITS" 
    onquerycreated="EntityDataSource1_QueryCreated">
</asp:EntityDataSource>

protected void EntityDataSource1_QueryCreated(object sender, QueryCreatedEventArgs e)
{
    var fruits = e.Query.Cast<Fruits>();
    e.Query = fruits.GroupBy(fruit => fruit.COLOR)
                     .Select(group => new { FRUIT, COLOR,   group.Sum(fruit => fruit.SEEDS)});;  
}

参照: EntityDataSource への LINQ クエリの適用

于 2013-03-01T13:59:44.120 に答える