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





















