单表查询
- DataTable dt = ds.Tables["Product"];
- var query =
- // 调用AsEnumerable方法,使DataTable对象支持LINQ查询
- from r in dt.AsEnumerable()
- // 使用DataRow中的字段使用Field方法,Field为泛型,访问格式:.Field<类型>("字段名")
- where r.Field("cid") == 2
- select new
- {
- id = r.Field("id"),
- name = r.Field("name"),
- cid = r.Field("cid")
- };
- foreach (var p in query)
- {
- string msg = string.Format("id:{0}, name;{1}, cid:{2}", p.id, p.name, p.cid);
- listBox1.Items.Add(msg);
- }
连接查询
- DataTable dt_p = ds.Tables["Product"];
- DataTable dt_c = ds.Tables["classify"];
- var query =
- from c in dt_c.AsEnumerable()
- join p in dt_p.AsEnumerable() on c.Field("id") equals p.Field("cid")
- select new
- {
- id = p.Field("id"),
- name = p.Field("name"),
- cid = p.Field("cid"),
- cname = c.Field("name")
- };
- foreach (var p in query)
- {
- string msg = string.Format("id:{0}, name;{1}, cid:{2},cname:{3}", p.id, p.name, p.cid, p.cname);
- listBox1.Items.Add(msg);
- }
GroupJoin
Linq to SQL
首先建立Linq to SQL类
- // Linq to SQL类:包含分类表classify和产品表product
- lq1DataContext lq1 = new lq1DataContext();
- // 获取所有分类
- var query = from c in lq1.classify select c;
- foreach (var c in query)
- {
- // 注意c.product为该分类的产品集合
- foreach(var p in c.product)
- {
- // 注意p.classify.name为该产品的分类名
- string msg = string.Format("id:{0}, 名称;{1},分类:{2},", p.id, p.name, p.classify.name);
- listBox1.Items.Add(msg);
- }
- }
删除数据
- lqDataContext lq1 = new lqDataContext();
- // 方法一
- // 删除id为100的产品
- // Delete_Product为附加到lqDataContext上的存储过程
- lq1.Delete_Product(100);
- // 方法二
- // 首先找到这条记录
- product pdt =
- (from p in product
- where p.id == 100
- select p).first();
- // 从客户端缓存删除这条记录
- lq1.product.DeleteOnSubmit(pdt);
- // 执行删除
- lq1.SubmitChanges();
修改数据
- lqDataContext lq1 = new lqDataContext();
- // 方法一:存储过程
- // 参数分别为:产品id, 名称, 价格, 数量, 分类id
- lq1.Update_Product(100, "耐克", 99, 33, 2);
- // 方法二
- // 首先找到这条记录
- product pdt =
- (from p in product
- where p.id == 100
- select p).first();
- // 修改这条记录
- pdt.name = "耐克";
- pdt.price = 99;
- pdt.number = 33;
- pdt.cid = 2;
- // 执行删除
- lq1.SubmitChanges();
添加数据
- lqDataContext lq1 = new lqDataContext();
- // 方法一:存储过程
- // 方法二
- product pdt = new product();
- pdt.id = 100
- pdt.name = "耐克";
- pdt.price = 99;
- pdt.number = 33;
- pdt.cid = 2;
- lq1.product.InsertOnSubmit(p);
- lq1.SubmitChanges();
声明:如需转载,请注明来源于www.webym.net并保留原文链接:http://www.webym.net/jiaocheng/768.html