C#-System-LinQ-条件精确查询、高级查询

C#-System-LinQ-条件精确查询、高级查询
 条件查询:Lambda表达式  Repeater1.DataSource = con.Car.Where(r => r.Name == name);
多条件查询:Repeater1.DataSource = con.Car.Where(r => r.Name == name && r.Price == Convert.ToDecimal(price)).ToList();

高级查询

一、模糊查询(包含字符串)

Repeater1.DataSource = con.Car.Where(r => r.Name.Contains(name)).ToList();

二、开头、结尾

Repeater1.DataSource = con.Car.Where(r => r.Name.StartsWith(name)).ToList();

Repeater1.DataSource = con.Car.Where(r => r.Name.EndsWith(name)).ToList();

三、最大值、最小值

//模糊查询并绑定数据

IQueryable<Car> clist = con.Car.Where(r => r.Name.Contains(name)).AsQueryable();

Repeater1.DataSource = clist;

//展示数据个数

Label1.Text = clist.Max(r => r.Price).ToString();

//展示数据中最小的

Label2.Text = clist.Min(r => r.Price).ToString();

四、个数

//模糊查询并绑定数据

IQueryable<Car> clist = con.Car.Where(r => r.Name.Contains(name)).AsQueryable();

Repeater1.DataSource = clist;

//展示数据个数

Label1.Text = clist.Count().ToString();

五、平均值、和

平均值:Average

Label1.Text = con.Car.Average(r => r.Price).ToString();

和:Sum

Label1.Text = con.Car.Sum(r => r.Price).ToString();

六、升序、降序

升序:

Repeater1.DataSource = con.Car.OrderBy(r => r.Price);

降序:

Repeater1.DataSource = con.Car.OrderByDescending(r => r.Price);

分段排序 - ThenBy()

IQueryable<Car> clist = con.Car.AsQueryable().OrderBy(r => r.Brand).ThenBy(r => r.Oil);

.ToList()分页

int pagesize  = 分页大小(每一页大小)

int pageindex = 第几页(一般这个变量是随循环递增的)  

使用方法

.Skip(pagesize*pageindex).Take(pagesize)

.Skip()   忽略数,表示从哪里开始分页

.Take()  表示每一页截取多少个记录

注意 ,数列是从0开始的,也就是说,第一个是 0,第二个是 1 ... ...

以上方法结合,截取的只是一页,需要在循环中使用,不断截取下一页

例如

{1,2,3,4,5,6,7,8,9,10}

.Skip(5).Take(4)     //忽略5个数,即从第(5+1)个数开始截!共截取4个

输出 6,7,8,9

Linq 中查询一个表中指定的字段

Linq中查询一个表中指定的几个字段:

var ts = t.FindAllItems().Where(P => P.CompanyID == CurSiteUser.CompanyId).Select(s => new { BillPeriod = s.BillPeriod,FieldB=s.FieldB }).Distinct().ToList().OrderByDescending(s => s.BillPeriod).Take(24);

//   FindAllItems()为查询对应表的所有数据的方法;

// Where 里面为查询条件

// Select 为查询的筛选条件  new{}  里面就是要查询的字段

//Distinct() 为去除重复的查询

//ToList() 为将查询转换为List<>

//OrderByDescending()  表示排序字段及排序方法(倒序排列)

//Take(N)  表示查询前N条数据

 

posted on 2024-05-21 10:35  侗家小蚁哥  阅读(53)  评论(0编辑  收藏  举报