static void Main() |
02 | { |
03 | string strcon = global::TestLinqToSQL.Properties.Settings.Default.testConnectionString; |
04 | SqlConnection conn = new SqlConnection(strcon); |
05 | SqlDataAdapter da = new SqlDataAdapter( "select * from T_Teacher" , strcon); |
06 | DataTable dt = new DataTable(); |
07 | da.Fill(dt); |
08 | conn.Close(); |
09 | |
10 | IEnumerable<DataRow> q1 = from r in dt.AsEnumerable() |
11 | where r.Field< int >( "ID" ) % 2 == 0 |
12 | select r; |
13 | foreach (var item in q1) |
14 | { |
15 | Console.WriteLine( "ID={0},Name={1},Birthday={2}" , item[ "ID" ].ToString(), item[ "Name" ].ToString(), item[ "Birthday" ].ToString()); |
16 | } |
17 | Console.WriteLine( "-----------------------------------" ); |
18 | IEnumerable<DataRow> q2 = from r in dt.AsEnumerable() |
19 | where r.Field< int >( "ID" )>10 |
20 | select r; |
21 | foreach (var item in q2) |
22 | { |
23 | Console.WriteLine( "ID={0},Name={1},Birthday={2}" , item[ "ID" ].ToString(), item[ "Name" ].ToString(), item[ "Birthday" ].ToString()); |
24 | } |
25 | Console.WriteLine( "-----------------------------------" ); |
26 | DataTable dt1 = q1.CopyToDataTable(); |
27 | DataTable dt2 = q2.CopyToDataTable(); |
28 | //var except = dt2.AsEnumerable().Except(dt1.AsEnumerable() , DataRowComparer.Default); //集合排除 |
29 | //var except = dt2.AsEnumerable().Union(dt1.AsEnumerable(), DataRowComparer.Default); //集合并 |
30 | var except = dt2.AsEnumerable().Intersect(dt1.AsEnumerable(), DataRowComparer.Default); //集合交 |
31 | foreach (var item in except) |
32 | { |
33 | Console.WriteLine( "ID={0},Name={1},Birthday={2}" , item[ "ID" ].ToString(), item[ "Name" ].ToString(), item[ "Birthday" ].ToString()); |
34 | } |
35 | Console.WriteLine( "done" ); |
36 | Console.ReadLine(); |
37 | } |