精华内容
下载资源
问答
  • datatable linq

    2015-06-30 09:29:50
    var query = from a in dt.AsEnumerable() where a.Field("Type") == "D" && a.Field("HasRight") == 1 select
    var query = from a in MasterDataHelper.OrganizationTree.AsEnumerable()
                                        where
                                        a.Field<string>("ID") == dr["Company"].ToString()
                                        && a.Field<string>("Type") == "C"
                                        select a;
                            if (query != null)
                            {
                                DataTable dt = query.AsDataView().ToTable();
                                if (dt.Rows.Count > 0)
                                    dr["Company"] = dt.Rows[0]["Name"];
                            }

    上面是筛选代码

    var order = from a in dtCompanyStatistics.AsEnumerable() 
                            orderby a.Field<int>("Num") descending 
                            select a;
                dtCompanyStatistics = order.AsDataView().ToTable();

    上面是排序代码
    展开全文
  • DataTable Linq 左连接

    2018-06-10 01:50:00
    DataTable Linq 左连接 (一)Linq左连接案例分析 有如下两个DataTable:localDt和schemaDt 要实现这两个DataTable的左连接,得到如下效果: 分析一: 代码 var temp1 = (from schema in ...

    DataTable Linq 左连接

    (一)Linq左连接案例分析

    有如下两个DataTable:localDt和schemaDt

    image

    image

    要实现这两个DataTable的左连接,得到如下效果:

    分析一:

    代码
    var temp1 = (from schema in schemaDt.AsEnumerable()
                 join local in localDt.AsEnumerable() 
                 on schema.Field<string>("name") equals local.Field<string>("sql_name")
                 into tempTable
                 from item in tempTable.DefaultIfEmpty<DataRow>()
                 select item).ToList();

    image

    分析二

    代码
    var temp2 = (from local in localDt.AsEnumerable()
                 join schema in schemaDt.AsEnumerable() 
                 on local.Field<string>("sql_name") equals schema.Field<string>("name")
                 into tempTable
                 from item in tempTable.DefaultIfEmpty()
                 select item).ToList();

     

    分析三:

    代码var temp3 = (from schema in schemaDt.AsEnumerable()
                 join local in localDt.AsEnumerable() on schema.Field<string>("name") equals local.Field<string>("sql_name")
                 into tempTable
                 from item in tempTable.DefaultIfEmpty<DataRow>(localDt.NewRow())
                 select item).ToList();

    image

    分析四:

    代码var temp4 = (from schema in schemaDt.AsEnumerable()
                join local in localDt.AsEnumerable() on schema.Field<string>("name") equals local.Field<string>("sql_name")
                into tempTable
                from item in tempTable.DefaultIfEmpty<DataRow>(schemaDt.NewRow())
                select item).ToList();

    image

    posted @ 2018-06-10 01:50 李华丽 阅读(...) 评论(...) 编辑 收藏
    展开全文
  • datatable linq查询

    千次阅读 2017-09-21 11:39:13
    本文导读:在平时的工作中,可能有很多情况下要对DataTable的里面的数据进行处理,例如:对DataTable中的某个字段进行排序,根据条件筛选datatable 中的数据,如果能够通过linqdatatable进行查询,则方便很多。...
    本文导读:在平时的工作中,可能有很多情况下要对DataTable的里面的数据进行处理,例如:对DataTable中的某个字段进行排序,根据条件筛选datatable 中的数据,如果能够通过linq对datatable进行查询,则方便很多。

    DataTable通过调用AsEnumerable()方法,从而运用Linq查询。其中AsEnumerable方法在System.Data.DataSetExtensions.dll中定义,一般VS会自动引用这个dll。

    一、datatable linq查询实例

    1. DataTable读取列表

     
    C# 代码   复制
    
    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"));
    }
    
     
    C# 代码   复制
    
    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);
    }
    

    2. DataTable linq where 查询

     
    C# 代码   复制
    
    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 linq 数据排序

     
    C# 代码   复制
    
    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")
        });
    
     
    C# 代码   复制
    
    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"));
    }
    
     
    C# 代码   复制
    
    var expr = from p in ds.Tables["Product"].AsEnumerable()
               orderby p.Field<int>("SortOrder"), p.Field<string>("ProductName") descending
               select p;
    

    4、DataTable分组 


    C# 代码   复制
    
    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的数目

     
    C# 代码   复制
    
    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()
               };
    

    5、多个DataTable查询

     
    C# 代码   复制
    
    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")
                };
    

    二、linq 对象转换为DataTable

    通过CopyToDataTable()方法

     
    C# 代码   复制
    
    DataTable newD1t = query1.CopyToDataTable<DataRow>();
    foreach (DataRow item in newD1t.Rows)
    {
                    System.Console.WriteLine(item["Name"]);
                }
    展开全文
  • DataTable Linq Example

    2016-07-27 17:48:00
    DataTable CreateTable() { DataTable dtable = new DataTable(); DataColumn dc; //MId CId FId PId dc = new DataColumn("MId", Type.GetType("System.Int...
        DataTable CreateTable()
        {
            DataTable dtable = new DataTable();
            DataColumn dc;
            //MId CId FId PId  
            dc = new DataColumn("MId", Type.GetType("System.Int32"));
            dtable.Columns.Add(dc);
            dc = new DataColumn("CId", Type.GetType("System.Int32"));
            dtable.Columns.Add(dc);
            dc = new DataColumn("FId", Type.GetType("System.Int32"));
            dtable.Columns.Add(dc);
            dc = new DataColumn("PId", Type.GetType("System.String"));
            dtable.Columns.Add(dc);
            return dtable;
        }
    
        void LinqDataTable(HttpResponse Response)
        {
            DataTable dtable  = CreateTable();
            for (int i = 0; i < 30; i++)
            {
                DataRow Dr;
                Dr = dtable.NewRow();
                Dr["MId"] = i;
                Dr["CId"] = i + 1;
                Dr["FId"] = i + 2;
                Dr["PId"] = i%2 ==0? "A":"B";
                dtable.Rows.Add(Dr);
            }
            var query = (from t in dtable.AsEnumerable()
                         //where t.Field<string>("PId") == "A"          
                         orderby t.Field<int>("MId")
                         group t by new
                         {
                             Mid = t.Field<Int32>("MId"),
                             PId = t.Field<string>("PId")
                         } into g
                         //where g.Key.PId == "B"
                         select new
                         {
                             MId = g.Key.Mid,
                             PId = g.Key.PId
                         });
    
            var AGroup = query.Where((a => a.PId == "A"));
            var BGroup = query.Where((a => a.PId == "B"));
            var sum = query.Sum((a => a.PId));
            foreach (var v in AGroup)
            {
                Response.Write("</br>" + v.PId + "\t" + v.MId);
            }
            foreach (var v in BGroup)
            {
                Response.Write("</br>" + v.PId + "\t" + v.MId);
            }
            Response.End();
        }
    

     

    转载于:https://www.cnblogs.com/fornet/p/5712056.html

    展开全文
  • Datatable linq 用法

    2015-06-05 09:50:00
    using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data;namespace WebApplication_study.Linq{ publi...
  • http://www.cnblogs.com/shineblog/archive/2012/09/14/2684417.html http://www.cnblogs.com/junjie94wan/archive/2012/09/11/2679806.html http://www.cnblogs.com/kingangWang/archive/2011/09/07/2169453.html
  • LINQ 查询适用于实现的数据源IEnumerable<...所以要在DataTable中使用LINQ查询,需要调用一下AsEnumerable方法,返回一个EnumerableRowCollection<DataRow>集合。 实例如下所示: using...
  • 描述如题,排序后,再转回DataTable //数据库取出来的是string 的,排序结果不准确,不能直接使用 var query = from contact in dataTable.AsEnumerable() where contact.Field<string>("BB...
  • DataTable dataTable = new DataTable(); dataTable.Columns.Add("username", typeof(string)); dataTable.Rows.Add("zgj"); dataTable.Rows.Add("zgj"); dataTable.Rows.Add("zgj...
  • 关于datatable datarow DataTable paraval = GetParaVal(DateCondition, strUrl, Page, RowPage, iYearMonthNow, 2); var query = from t in paraval.AsEnumerable() //datatable 和l...
  • 根据一个DataTable。 如果它的其中一是INT或FLOAT之类的话。则要求合。 下面写一下,  CodeDataTabletable=newDataTable();table.Columns.Add("IntColumn",typeof(int));table.Columns.Add("...
  • DataTable products = ds.Tables["Product"]; var query = from product in products.AsEnumerable() where product.Field("Color") == "Red" select new { Name = product.Field("Name"), ProductNumber = ...
  • 最近接手 了一个非常古老的项目,使用aspx开发的项目,令人不得不感叹,政府的项目就是水准不太高。钱也好挣。 分库查询,多个结果集如何计算取交集。...利用linq获取联合查询,根据data1连接data2,data1为主表,...
  • 其中,AutoAck,ManAck有可能是在数据库中不存在这两列,在转化数据时,是否有什么方法可以检测不存在? tempModel = queryData.AsEnumerable().Select(item => new SendSuccessRatioModel { ...
  • DataTable 使用linq方法获得某分组列表
  • 1如何使用DataTable.Select选出来的Rows生成新的DataTable?DataTable dt = 数据源;DataTable dtt = new DataTable();dtt=dt.Clone();//拷贝框架DataRow[] dr = dt.select("条件");for(int i=0;i<dr.length;i++){...
  • 前几天写了一篇sqlserver 行转,...由于工作需要,要把查出来的DataTable实现 行转, 正好这一阵子在用Linq 就做了一个行转的小例 子 转换前的table: 转换后的table: 代码里有详细的说明, ...
  • Linq实现DataTable行转效果

    千次阅读 2013-04-03 15:41:47
    今天的C#程序将使用Linq实现DataTable行转效果。 转换前的table: 转换后的table: 代码: using System; using System.Collections.Generic; using System.Data; using System.Linq; usi
  • Linq实现DataTable行转

    2016-06-02 18:17:34
    由于工作需要,要把查出来的DataTable实现 行转, 正好这一阵子在用Linq 就做了一个行转的小例 子 转换前的table: 转换后的table:  代码里有详细的说明, 还有一些参数我都截图了下面有 using System...
  • 在查询的过程中  datatable.select 条件查询后数据排序会改变原本的排序 linq to datatable 而不会改变原本的排序.
  • C# LinqDataTable指定

    千次阅读 2017-11-06 10:43:46
    使用前提1、项目必须是.net framework 3.5 及以上 2、项目引用中添加了System.Data.DataSetExtensions ...DataTable dtCenters = new DataTable(); OracleDataAdapter ad = new OracleDataAdapter(cmd);

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,541
精华内容 3,416
关键字:

datatablelinqselect列