开发者

DataTable linq query iteration

开发者 https://www.devze.com 2022-12-31 08:56 出处:网络
I want to Enumerate Linq Query. Below i specified example. EX: DataTable _slidingDataTable = new DataTable(\"test\");

I want to Enumerate Linq Query. Below i specified example.

EX:

 DataTable _slidingDataTable = new DataTable("test");

 for(int i=0; i<5;i++)
 {
  DataRow row = _slidingDataTable.NewRow();

   startPosition = DateTime.Now;
   for(int i=0; i<5;i++)
   {
      _slidingDataTable.Columns.Add("TransferTime");
       row[columnName] = startPosition ;
       _slidingDataTable.Columns.Add("TransferData");
       row[columnName] = "Test"+i;
    }

 _slidingDataTa开发者_Go百科ble.Rows.Add(row);
 }


 var query1 = from myRow in _slidingDataTable.AsEnumerable()
                        where myRow.Field<DateTime>("TransferTime") == startPosition
                        select myRow;

This query output should be collection of rows. How to get collection row & iterate.


In your context, query1 is an EnumerableRowCollection<DataRow> because you used _slidingDataTable.AsEnumerable(), and you can iterate over it like so :

foreach (DataRow row in query1)
{ 
    // Do stuff with that row
}


I'm giving you an example by which you can see it and it also includes sum in groupby.

var drdatedisp = from row in dtfullreport.AsEnumerable()
                             group row by row.Field<string>("Order_Date") into g
                             select new
                             {
                                 Order_Date = g.Key,
                                 totalQnty = g.Sum(a => a.Field<int>("Item_Quantity")),
                                 totalTax = g.Sum(a => float.Parse(a.Field<decimal>("TAXAMT").ToString())),
                                 totalAmt = g.Sum(a => float.Parse(a.Field<decimal>("VALAMT").ToString()))
                             };
            DataTable dtdatedisp = new DataTable();
            dtdatedisp.Columns.Add("Order_Date");
            dtdatedisp.Columns.Add("Item_Quantity");
            dtdatedisp.Columns.Add("TAXAMT");
            dtdatedisp.Columns.Add("VALAMT");
            dtdatedisp.Rows.Clear();
            foreach (var g in drdatedisp)
            {
                DataRow newRow1 = dtdatedisp.NewRow();
                newRow1[0] = g.Order_Date;
                newRow1[1] = g.totalQnty;
                newRow1[2] = String.Format("{0:0.00}", g.totalTax);
                newRow1[3] = String.Format("{0:0.00}", g.totalAmt);
                dtdatedisp.Rows.Add(newRow1);
            }
0

精彩评论

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