• 第三章 LINQ to DataSets基本用法


      LINQ to DataSet需要使用System.Core.dll、System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System.Data和System.Data.DataSetExtensions。

    1. 1.        DataTable读取列表

    DataSet ds = new DataSet();

     

    // 省略ds的Fill代码

     

    DataTable products = ds.Tables["Product"];

     

    IEnumerable<DataRow> rows = from p in products.AsEnumerable()

     

                                select p;

     

    foreach (DataRow row in rows)

     

    {

     

        Console.WriteLine(row.Field<string>("ProductName"));

     

    }

     

    DataSet ds = new DataSet();

     

    // 省略ds的Fill代码

     

    DataTable products = ds.Tables["Product"];

     

    var rows = products.AsEnumerable()

     

        .Select(p => new

     

        {

     

            ProductID = p.Field<int>("ProductID"),

     

            ProductName = p.Field<string>("ProductName"),

     

            UnitPrice = p.Field<decimal>("UnitPrice")

     

        });

     

    foreach (var row in rows)

     

    {

     

        Console.WriteLine(row.ProductName);

     

    }

     

    var products = ds.Tables["Product"].AsEnumerable();

    var query = from p in products

    select p.Field<string>("ProductName");

      2. DataTable查询

    var rows = products.AsEnumerable()

     

        .Where(p => p.Field<decimal>("UnitPrice") > 10m)

     

        .Select(p => new

     

        {

     

            ProductID = p.Field<int>("ProductID"),

     

            ProductName = p.Field<string>("ProductName"),

     

            UnitPrice = p.Field<decimal>("UnitPrice")

     

        });

      3. DataTable数据排序

    var rows = products.AsEnumerable()

     

        .Where(p => p.Field<decimal>("UnitPrice") > 10m)

     

        .OrderBy(p => p.Field<int>("SortOrder"))

     

        .Select(p => new

     

        {

     

            ProductID = p.Field<int>("ProductID"),

     

            ProductName = p.Field<string>("ProductName"),

     

            UnitPrice = p.Field<decimal>("UnitPrice")

     

        });

     

    var expr = from p in products.AsEnumerable()

     

                orderby p.Field<int>("SortOrder")

     

                select p;

     

    IEnumerable<DataRow> rows = expr.ToArray();

     

    foreach (var row in rows)

     

    {

     

        Console.WriteLine(row.Field<string>("ProductName"));

     

    }

     

    var expr = from p in ds.Tables["Product"].AsEnumerable()

               orderby p.Field<int>("SortOrder"), p.Field<string>("ProductName") descending

               select p;

      4. 多个DataTable查询

    var query = from p in ds.Tables["Product"].AsEnumerable()

     

                from c in ds.Tables["Category"].AsEnumerable()

     

                where p.Field<int>("CategoryID") == c.Field<int>("CategoryID")

     

                    && p.Field<decimal>("UnitPrice") > 10m

     

                select new

     

                {

     

                    ProductID = p.Field<int>("ProductID"),

     

                    ProductName = p.Field<string>("ProductName"),

     

                    CategoryName = c.Field<string>("CategoryName")

     

                };

      5. DataTable分组

    var query = from p in ds.Tables["Product"].AsEnumerable()

     

                group p by p.Field<int>("CategoryID") into g

     

                select new

     

                {

     

                    CategoryID = g.Key,

     

                    Products = g

     

                };

     

     

     

    foreach (var item in query)

     

    {

     

        Console.WriteLine(item.CategoryID);

     

        foreach (var p in item.Products)

     

        {

     

            Console.WriteLine(p.Field<string>("ProductName"));

     

        }

     

    }

        查询Product中每个CategoryID的数目:

    var expr = from p in ds.Tables["Product"].AsEnumerable()

     

               group p by p.Field<int>("CategoryID") into g

     

               select new

     

               {

     

                   CategoryID = g.Key,

     

                   ProductsCount = g.Count()

     

               };

  • 相关阅读:
    css 学习笔记 菜鸟
    html学习 菜鸟
    flask 杂记2
    logging 为全局的日志工具对象添加日志记录器
    flask 框架 转载:https://cloud.tencent.com/developer/article/1465968
    flask 框架 转载:https://cloud.tencent.com/developer/article/1465949
    flask blueprint
    [ZJOI2005]午餐
    [ZJOI2006]皇帝的烦恼
    数位dp小练
  • 原文地址:https://www.cnblogs.com/yuands/p/7475254.html
Copyright © 2020-2023  润新知