单表查询
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