现在的位置: 网页制作教程网站制作教程 >正文
美文欣赏

Linq to DataSet(三)

发表于2017/3/9 网站制作教程 0条评论 ⁄ 热度 1,876℃

单表查询

  1. DataTable dt = ds.Tables["Product"];
  2. var query =
  3. // 调用AsEnumerable方法,使DataTable对象支持LINQ查询
  4. from r in dt.AsEnumerable()
  5. // 使用DataRow中的字段使用Field方法,Field为泛型,访问格式:.Field<类型>("字段名")
  6. where r.Field("cid") == 2
  7. select new
  8. {
  9. id = r.Field("id"),
  10. name = r.Field("name"),
  11. cid = r.Field("cid")
  12. };
  13. foreach (var p in query)
  14. {
  15. string msg = string.Format("id:{0}, name;{1}, cid:{2}", p.id, p.name, p.cid);
  16. listBox1.Items.Add(msg);
  17. }

连接查询

  1. DataTable dt_p = ds.Tables["Product"];
  2. DataTable dt_c = ds.Tables["classify"];
  3. var query =
  4. from c in dt_c.AsEnumerable()
  5. join p in dt_p.AsEnumerable() on c.Field("id") equals p.Field("cid")
  6. select new
  7. {
  8. id = p.Field("id"),
  9. name = p.Field("name"),
  10. cid = p.Field("cid"),
  11. cname = c.Field("name")
  12. };
  13. foreach (var p in query)
  14. {
  15. string msg = string.Format("id:{0}, name;{1}, cid:{2},cname:{3}", p.id, p.name, p.cid, p.cname);
  16. listBox1.Items.Add(msg);
  17. }

GroupJoin

Linq to SQL

首先建立Linq to SQL类

  1. // Linq to SQL类:包含分类表classify和产品表product
  2. lq1DataContext lq1 = new lq1DataContext();
  3.  
  4. // 获取所有分类
  5. var query = from c in lq1.classify select c;
  6. foreach (var c in query)
  7. {
  8. // 注意c.product为该分类的产品集合
  9. foreach(var p in c.product)
  10. {
  11. // 注意p.classify.name为该产品的分类名
  12. string msg = string.Format("id:{0}, 名称;{1},分类:{2},", p.id, p.name, p.classify.name);
  13. listBox1.Items.Add(msg);
  14. }
  15. }

删除数据

  1. lqDataContext lq1 = new lqDataContext();
  2.  
  3. // 方法一
  4. // 删除id为100的产品
  5. // Delete_Product为附加到lqDataContext上的存储过程
  6. lq1.Delete_Product(100);
  7.  
  8. // 方法二
  9. // 首先找到这条记录
  10. product pdt =
  11. (from p in product
  12. where p.id == 100
  13. select p).first();
  14.  
  15. // 从客户端缓存删除这条记录
  16. lq1.product.DeleteOnSubmit(pdt);
  17.  
  18. // 执行删除
  19. lq1.SubmitChanges();

修改数据

  1. lqDataContext lq1 = new lqDataContext();
  2.  
  3. // 方法一:存储过程
  4. // 参数分别为:产品id, 名称, 价格, 数量, 分类id
  5. lq1.Update_Product(100, "耐克", 99, 33, 2);
  6.  
  7. // 方法二
  8. // 首先找到这条记录
  9. product pdt =
  10. (from p in product
  11. where p.id == 100
  12. select p).first();
  13.  
  14. // 修改这条记录
  15. pdt.name = "耐克";
  16. pdt.price = 99;
  17. pdt.number = 33;
  18. pdt.cid = 2;
  19.  
  20. // 执行删除
  21. lq1.SubmitChanges();

添加数据

  1. lqDataContext lq1 = new lqDataContext();
  2.  
  3. // 方法一:存储过程
  4.  
  5. // 方法二
  6. product pdt = new product();
  7. pdt.id = 100
  8. pdt.name = "耐克";
  9. pdt.price = 99;
  10. pdt.number = 33;
  11. pdt.cid = 2;
  12.  
  13. lq1.product.InsertOnSubmit(p);
  14. lq1.SubmitChanges();
  • 暂无评论