LINQ查询————八大基本子句

八大语句:

1.from ... in子句:制定查询操作的数据源和范围变量。

2.select子句:指定查询结果的类型和表现形式。

3.where子句:筛选元素的逻辑条件,一般由逻辑运算符组成。

4.group ... by子句:对查询进行分组。

5.orderby子句:对查询结果进行排序,可以为“升序”或“降序”。

6.join子句:连接多个查询操作的数据源。

7.let子句:引入用于存储查询表达式中的子表达式结果的范围变量。

8.into子句:提供一个临时标识符,充当对join、group或select子句的结果。




1.简单查询

使用LINQ to SQL可以轻松查询数据库中的数据,比传统的SQL语句或存储过程查询数据库的方法更加简洁。

例如:

//简单查询
private void ShowData()
{
 //1.创建LinqDB数据库的数据上下文实例
 LinqDBDataContext db = new LinqDBDataContext(LinqSystem.LinqDBConnectionString);
 //2.使用LINQ查询表达式查询数据
 var result = from user in db.UserInfo
      where user.ID<10&&user.Username.Length>5
      select user;
 //3.设置数据源,并绑定数据
 gvUserInfo.DataSource=result;
 gvUserInfo.DataBind();
}

2.复杂查询

复杂查询在LINQ查询表达式中使用join子句联结多个相关的表。

例如:

//复杂查询
private void ShowData()
{
 //1.创建LinqDB数据库的数据上下文实例
 LinqDBDataContext db = new LinqDBDataContext(LinqSystem.LinqDBConnectionString);
 //2.使用LINQ查询表达式查询数据
 var result = from user in db.UserInfo
  join ur in db.UserRole on user.ID equals ur.UserID
  join role in db.Role on ur.RoleID equals role.ID
  where user.ID<10&&user.Username.Length>5
  select new {user.Username,role.RoleName};
 //3.设置数据源,并绑定数据
 gv.DataSource = result;
 gv.DataBind();
}


3.聚合查询

使用LINQ to SQL不但可以轻松查询数据库中的数据,而且还可以对查询结果进行聚合计算,如计算查询结果的和(sum),最大值(max),最小值(min),平均值(Average)

例如:

//聚合查询
private void ShowData()
{
 //1.创建LinqDB数据库的数据上下文实例
 LinqDBDataContext db = new LinqDBDataContext(LinqSystem.LinqDBConnectionString);
 //2.使用LINQ查询表达式查询数据
 var result = from p in db.Product
  where p.Price == db.Product.Max(c=>c.Price.Value)||p.Price==db.Product.Min(c=>c.Price.Value)
  select new {p.ID,p.Name,p.Price,p.Remark};
 //3.显示最高和最低价格的商品
 gv.DataSource = result;
 gv.DataBind();
}


4.分组查询

分组查询和SQL语句中的带有"group"关键字的查询功能类似,它能够把查询结果按照关键字进行分组。

//分组查询
private void ShowData()
{
 //1.创建LinqDB数据库的数据上下文实例
 LinqDBDataContext db = new LinqDBDataContext(LinqSystem.LinqDBConnectionString);
 //2.使用LINQ查询表达式查询数据
var result=from pu in (from u in db.UserInfo join p in db.Product on u.ID equals p.UserID select new {p.ID,p.Name,p.Price,p.UserID,u.Username})
    group pu by pu.UserID;
 //3.设置数据源,并绑定数据
foreach(var r in result)
{
 GridView gv = new GridView();
 gv.ID="gv"+r.Key.ToString();
 gv.DataSource=r;
 gv.DataBind();
 //Pnl为Panel控件
 Pnl.Controls.Add(gv);
 Pnl.Controls.Add(new LiteralControl("<hr/>"));
}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值