zoukankan      html  css  js  c++  java
  • CAML query for Group by count and data

    CAML query for Group by count and data

    Company Category Product Name
    Microsoft Developer Visual Studio
    Microsoft Consumer Windows
    Microsoft Enterprise SharePoint 2010
    Microsoft Mobile Windows 7
    Samsung Consumer Laptops
    Samsung Consumer Mobiles
    Samsung Consumer Tablet
    Google Consumer Search Engine
    Google Consumer Google Maps

    The above is my SharePoint List, I want to group by company’s name and then count the number of rows for each grouped by data and also display only chunk of data that is grouped.

    Company – Microsoft – 4 count

    Microsoft Developer Visual Studio
    Microsoft Consumer Windows
    Microsoft Enterprise SharePoint 2010
    Microsoft Mobile Windows 7

    Company – Samsung – 3 count

    Samsung Consumer Laptops
    Samsung Consumer Mobiles
    Samsung Consumer Tablet

    Company – Google – 2 count

    Google Consumer Search Engine
    Google Consumer Google Maps

    My  Solution – using CAML query LINQ

    using (SPSite site = new SPSite(“http://server“))
    
    {
    
    SPWeb web = site.OpenWeb();
    
    SPList listCAMLQuery = web.Lists["listName"];
    
    SPQuery query = new SPQuery(); // query for all the items
    
    DataTable dt = listCAMLQuery.GetItems(query).GetDataTable(); // get datatable for all the list items
    
    if (dt != null && dt.Rows.Count > 0)
    
    {
    
    //Group the data
    
    var groupedList = from row in dt.AsEnumerable()
    
    group row by row.Field<string>(“Company”) into groupedTable
    
    // Company is the column name for groupby
    
    // string is the type of column
    
    orderby groupedTable.Key // key is the groupby column category value
    
    select new
    
    {
    
    Key = groupedTable.Key, // key is the groupby column category value
    
    companyCount = groupedTable.Count(), // count for columns in a groupby
    
    groupedRows = groupedTable.CopyToDataTable() // grouped data
    
    };
    
    // print result
    
    foreach (var items in groupedList)
    
    {
    
    int count = items.companyCount; // count for columns in a groupby category
    
    DataTable dt1 = items.groupedRows;
    
    gv.DataSource = dt1; //gridview
    
    gv.DataBind();
    
    }
    
    }
    
    }
    
    }

  • 相关阅读:
    成功,离你只有一步之遥
    多灾多难!危机下给企业家们的十大贴心忠告
    《赢道:成功创业者的28条戒律》 简介:
    面对大面积失业潮,普通人有无必要创业?
    赢在行动《越狱》给创业者的启示
    如何优选创业项目、产品和服务
    你是高执行力人才吗?
    创业新闻] 2009年创业者必读的十一本书(转)
    赢在2009 创业者需练好六脉神剑(转)
    相当受用!10个从实质上迅速提升经理人生活的方法
  • 原文地址:https://www.cnblogs.com/icedog/p/SharePoint.html
Copyright © 2011-2022 走看看