开发者

Perform Aggregate function of DataTable

I have to perform the aggreg开发者_如何学JAVAate function on the DataTable like Datatable.Compute but compute return the object i want to perform the aggregate function on the datatable and get the datarow .

_summaryTable.Compute("min(FareAdult)", whereClause 
                        + "AirlineDisplayName='" 
                        + Convert.ToString(airline["AirlineDisplayName"]) 
                        + "' and ( Stops=0) ");

but above code will only return the min(FareAdult) but i want to select the two column based on the above condition from datatable.

How can i do it through Linq I have to select min(FareAdult) and the TotelPrice value of same row


use Select instead compute

_summaryTable.Select("FilterationExpression");

DataRow[] dr = _summaryTable.Select("min(FareAdult),AirlineDisplayName='" + Convert.ToString(airline["AirlineDisplayName"]) + "' and ( Stops=0) ");


Here is a LINQ method. This is pseudocode since I don't know the typing of your row, and I haven't been able to test it, but the idea is the same. Use LINQ to select the rows that match your criteria, order by the FareAdult and then select the first (minimum).

var minResult = (from row in _summaryTable.Rows
                where row.AirlineDisplayName == airline["AirlineDisplayName"] && row.Stops == 0
                orderby row.FareAdult
                select row).FirstOrDefault();


private void CalcColumns()
{
    DataTable table = new DataTable ();

    //enter code here

    // Create the first column.
    DataColumn priceColumn = new DataColumn();
    priceColumn.DataType = System.Type.GetType("System.Decimal");
    priceColumn.ColumnName = "price";
    priceColumn.DefaultValue = 50;

    // Create the second, calculated, column.
    DataColumn taxColumn = new DataColumn();
    taxColumn.DataType = System.Type.GetType("System.Decimal");
    taxColumn.ColumnName = "tax";
    taxColumn.Expression = "price * 0.0862";

    // Create third column.
    DataColumn totalColumn = new DataColumn();
    totalColumn.DataType = System.Type.GetType("System.Decimal");
    totalColumn.ColumnName = "total";
    totalColumn.Expression = "price + tax";

    // Add columns to DataTable.
    table.Columns.Add(priceColumn);
    table.Columns.Add(taxColumn);
    table.Columns.Add(totalColumn);

    DataRow row = table.NewRow();
    table.Rows.Add(row);
    DataView view = new DataView(table);
    dataGrid1.DataSource = view;
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜