Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Gridview将相似的行分组到一个_C#_Asp.net_Gridview - Fatal编程技术网

C# Gridview将相似的行分组到一个

C# Gridview将相似的行分组到一个,c#,asp.net,gridview,C#,Asp.net,Gridview,我有一个gridview,它使用EntityDataSource绑定到数据库中的一个表。我只使用db中与where子句相对应的项填充gridview FRUIT COLOR NUMB.SEEDS ORANGE ORANGE 3 APPLE RED 4 ORANGE ORANGE 2 STRAWBERRY RED 0 我想对NUMB.SEEDS的类似行求和,如下所示: FRUIT COLOR NUMB.SEED

我有一个gridview,它使用
EntityDataSource
绑定到数据库中的一个表。我只使用db中与where子句相对应的项填充gridview

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>

在SQL中,可以使用
GROUPBY
子句。我认为这应该适用于
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>


请注意,我根据您在问题中输入的列,在“选择”和“位置”表达式中调用您的字段。它们在实际数据源中可能不同。

您可以使用
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)});;  
}

您是否用LINQ编写了where子句?如果是-请在此处显示它们好吗?在select=“…”中,我是否应该写入数据源中显示的每个字段?@Camilla正是您希望在
GridView
中显示的字段。