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 | } |
本文演示了如何使用C#中的LINQ查询语法从数据库获取并处理数据。具体包括连接数据库、填充DataTable、筛选偶数ID的数据行及ID大于10的数据行,并进行集合交集操作。
1423

被折叠的 条评论
为什么被折叠?



