• Linq查询DataTable,DataRow


    static void Main() 

    {

    string strcon = global
    ::TestLinqToSQL.Properties.Settings.Default.testConnectionString; 

               SqlConnection conn
    = new
    SqlConnection(strcon); 

               SqlDataAdapter da
    = new SqlDataAdapter("select * from T_Teacher"
    , strcon); 

               DataTable dt
    = new
    DataTable(); 

               da.Fill(dt); 

               conn.Close(); 

     

               IEnumerable
    <DataRow> q1 = from r in
    dt.AsEnumerable() 

                                        
    where r.Field<int>("ID") % 2 == 0
     

                                         select r; 

              
    foreach (var item in
    q1) 

               { 

                   Console.WriteLine(
    "ID={0},Name={1},Birthday={2}", item["ID"].ToString(), item["Name"].ToString(), item["Birthday"
    ].ToString()); 

               } 

               Console.WriteLine(
    "-----------------------------------"
    ); 

               IEnumerable
    <DataRow> q2 = from r in
    dt.AsEnumerable() 

                                        
    where r.Field<int>("ID")>10
     

                                         select r; 

              
    foreach (var item in
    q2) 

               { 

                   Console.WriteLine(
    "ID={0},Name={1},Birthday={2}", item["ID"].ToString(), item["Name"].ToString(), item["Birthday"
    ].ToString()); 

               } 

               Console.WriteLine(
    "-----------------------------------"
    ); 

               DataTable dt1
    =
    q1.CopyToDataTable(); 

               DataTable dt2
    =
    q2.CopyToDataTable(); 

              
    //var except = dt2.AsEnumerable().Except(dt1.AsEnumerable() , DataRowComparer.Default); //
    集合排除 

              
    //var except = dt2.AsEnumerable().Union(dt1.AsEnumerable(), DataRowComparer.Default);   //集合并 


               var except
    = dt2.AsEnumerable().Intersect(dt1.AsEnumerable(), DataRowComparer.Default); //集合交 

              
    foreach (var item in except) 

               { 

                   Console.WriteLine(
    "ID={0},Name={1},Birthday={2}", item["ID"].ToString(), item["Name"].ToString(), item["Birthday"
    ].ToString()); 

               } 

               Console.WriteLine(
    "done"
    ); 

               Console.ReadLine(); 

  • 相关阅读:
    LINUX 下编译不通过解答
    线程与进程
    机房收费系统之报表总结2
    【android开发】10款实用的Android UI工具,非常有用!
    EMPTY表示元素不能包含文本,也不能包含子元素
    ResultSet是结果集对象
    如果没有指定Cookie的时效,那么默认的时效是。(选择1项)
    用于调用存储过程的对象是。(选择1项)
    Statement和PreparedStatement都是用来发送和执行SQL语句的
    DTD与XML Schema都是XML文档。(选择1项)
  • 原文地址:https://www.cnblogs.com/kingangWang/p/2158368.html
Copyright © 2020-2023  润新知