linq分页组合查询
一、linq高级查
1.模糊查(字符串包含)
1 public List<User> Select(string name)
2 {
3 return con.User.Where(r =>r.UserName.Contains(name)).ToList();
4 }
2.查开头(StartsWith,以XX开头)
public List<User> Select(string name)
{
return con.User.Where(r => r.UserName.StartsWith(name)).ToList();
}
3.查结尾
public List<User> Select(string name)
{
return con.User.Where(r => r.UserName.EndsWith(name)).ToList();
}
4.查出来的数组长度(个数)
clist.Count()
5.最大值:Max(r => r.price);
public decimal? SelectMax()
{
return con.car.Max(r => r.price);
}
6.最小值:Min(r => r.price);
public decimal? SelectMin()
{
return con.car.Min(r => r.price);
}
7.平均值:Average(r => r.price);
public decimal? SelectAvg()
{
return con.car.Average(r => r.price);
}
8.求和:Sum(r => r.price);
public decimal? SelectSum() { return con.car.Sum(r => r.price); }
9.排序:
1、OrderBy 按升序对值进行排序。
2、OrderByDescending 按降序对值进行排序
3、ThenBy 按升序执行次要排序。
4、ThenByDescending 按降序执行次要排序。
(1)升序:OrderBy(r => r.price)
1 public List<car> orderBy()
2 {
3 return con.car.OrderBy(r => r.price).ToList();
4 }
(2)降序:OrderByDescending(r => r.price)
public List<car> orderBy()
{ return con.car.OrderByDescending(r => r.oil).ToList();
}
二、分页与组合查询
1.分页
1 public List<User> Select(int count, int number)
2 {
3 return con.User.Skip(count * (number - 1)).Take(count).ToList();
4 }//这里的number是当前页数,count是每页的数据条数。skip,除去前多少条数据剩下的数据。take,取几条数据,这句话就是查询除去前多少条之后的剩下的数据的前多少条数据

public int MaxPageNumber()
{
List<User> list = new UserData().Select();
double nu = list.Count / (Pagecount * 1.0);//不要忘了取上线
int num = Convert.ToInt32(Math.Ceiling(nu));
return num;
}//总页数


void btn_next_Click(object sender, EventArgs e)
{
int NowNumber = Convert.ToInt32(Label2.Text) + 1;//下一页的页数
if (NowNumber > MaxPageNumber())
{
return;
}
Repeater1.DataSource = new UserData().Select(Pagecount, NowNumber);
Repeater1.DataBind(); Label2.Text = NowNumber.ToString();
DropDownList2.SelectedValue = NowNumber.ToString(); }//下一页

void Button2_Click(object sender, EventArgs e)
{
using(WebDataContext con=new WebDataContext())//using比较适合用于个人开发,当花括号里的内容结束后内存自动释放,节省资源
{
var All = con.User.AsEnumerable();//AsEnumerale也是一个集合,不会占用系统空间,相当于只是把查询字符串给拼接起来,准备好,
当执行ToList时才会进行查询
if (TextBox1.Text.Trim().Length > )//说明这里填写了内容
{
var namelist = con.User.Where(r => r.UserName.Contains(TextBox1.Text.Trim())); All = All.Intersect(namelist);
} if (tb_sex.Text.Trim() == "男" || tb_sex.Text.Trim() == "女")
{
var sexlist = con.User.Where(r =>Convert.ToBoolean(r.Sex)==(tb_sex.Text.Trim()=="男"?true:false)); All = All.Intersect(sexlist);
} if (tb_age.Text.Trim().Length > )
{
int nowyear = DateTime.Now.Year;
try {
int age= Convert.ToInt32(tb_age.Text.Trim());
int g = nowyear- age;
DateTime d = Convert.ToDateTime(g.ToString() + "-1-1");
if (DropDownList3.SelectedValue == ">=")
{
var agelist = con.User.Where(r => Convert.ToDateTime(r.Birthday) >= d);
All = All.Intersect(agelist); }
else
{
DateTime dd = Convert.ToDateTime(g.ToString() + "-12-31");
var agelist = con.User.Where(r => Convert.ToDateTime(r.Birthday) <= dd);
All = All.Intersect(agelist); }
}
catch{
}
} Repeater1.DataSource = All;
Repeater1.DataBind();
}
}
分页组合查(以下一页为例)
void LinkButton2_Click(object sender, EventArgs e)//下一页
{
using (renuanDataContext ren = new renuanDataContext())
{
var all = ren.Users.AsEnumerable();
if (chayhmtext.Text.Trim().Length > )
{
var namelist = ren.Users.Where(r => r.Uname.Contains(chayhmtext.Text.Trim()));
all = all.Intersect(namelist);
}
if (chasexdrop.Text.Trim().Length > )
{
var sexlist = ren.Users.Where(r => r.Usex.ToString() == chasexdrop.SelectedValue);
all = all.Intersect(sexlist);
}
if (chanationdrop.Text.Trim().Length > )
{
var nationlist = ren.Users.Where(r => r.Unation.ToString() == chanationdrop.Text);
all = all.Intersect(nationlist);
}
count2.Text = Math.Ceiling(all.Count() / (countnum * 1.0)).ToString();//总页数
int page= Convert.ToInt32(count1.Text) + ;//点击之后的页数
if(Convert.ToInt32(count1.Text)< Convert.ToInt32(count2.Text))//判断是否为最后一页
{
count1.Text = page.ToString();
Repeater1.DataSource = all.Skip(countnum * (Convert.ToInt32(count1.Text) - )).Take(countnum).ToList(); Repeater1.DataBind();
}//页数
}//using
}
linq分页组合查询的更多相关文章
- 【2017-06-02】Linq高级查询,实现分页组合查询。
1.以XXX开头 2.以XXX结尾 3.模糊查询 4.求个数 5.求最大值 6.求最小值 7.求平均值 8.求和 9.升序 10.降序 11.分页 Skip()跳过多少条 Take()取多少条 12. ...
- Linq组合查询与分页组合查询结合
1.组合查询 <div>姓名:<asp:TextBox ID="T1" runat="server"></asp:TextBox& ...
- ASP.NETMVC4 分页组合查询解决方法
本人新手刚在webform转到mvc 像linq ef啥的,都是不会的不行不行的,不会就问群友,找资料 今天本屌遇到了一个分页组合查询的问题,解决了2个小时,把代码共享给大家 话不多话,直接上代 ...
- webform:分页组合查询
一个简单的分页组合查询页面 /// <summary> /// 查询方法 /// </summary> /// <param name="tsql"& ...
- Webform--LinQ 分页组合查询
一.linq高级查 1.模糊查(字符串包含) public List<User> Select(string name) { return con.User.Where(r => r ...
- ASP.NET 分页+组合查询 练习
分页和组合查询都是通过拼接SQL语句到数据库查询进行实现 到汽车表(car)中查询 ,汽车表选取了“编号 code”,“车名 name”,“日期 time”,“油耗 oil ”,“马力 powers” ...
- Webform(Linq高级查、分页、组合查询)
一.linq高级查 1.模糊查(包含) 1 public List<User> Select(string name) 2 { 3 return con.User.Where(r => ...
- LINQ 小项目【组合查询、分页】
使用 linq 在网页上对用户信息增删改,组合查询,分页显示 using System; using System.Collections.Generic; using System.Linq; us ...
- webform 分页、组合查询综合使用
界面: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx ...
随机推荐
- JS请求服务器并使页面跳转(转)
前段时间在项目中用到了前台框架EasyUI,各种组件都是差不多都是用js来渲染的,这样一些页面请求就必须用js代码来写. 但是js请求就不和html请求的玩法不怎么相同,比如我要向服务器发送一个请求然 ...
- C#与Java对比学习:数据类型、集合类、栈与队列、迭达、可变参数、枚举
数据类型: C#:String与StringBuilder Java:String与StringBuffer 第一个不习惯是string的第一个字母必须大写了. 第二个不习惯是int得写成Intege ...
- TaintDroid剖析之File & Memiry & Socket级污点传播
TaintDroid剖析之File & Memiry & Socket级污点传播 作者:简行.走位@阿里聚安全 1.涉及到的代码文件 TaintDroid在File, Memory以及 ...
- 编译可在Android上运行的qemu user mode
前言 本文在Ubuntu 64位系统上对qemu项目进行交叉编译,并且只编译与qemu user mode有关的代码. 下文中的”NDK”若无特殊说明均指”Android NDK”. 下文中”$NDK ...
- 你的眼睛背叛你的心:解决 .NET Core 中 GetHostAddressesAsync 引起的 EnyimMemcached 死锁问题
在我们将站点从 ASP.NET + Windows 迁移至 ASP.NET Core + Linux 的过程中,目前遇到的最大障碍就是 —— 没有可用的支持 .NET Core 的 memcached ...
- 写一个脚本,自动启动tomcat
我的服务器是使用tomcat的,时不时tomcat的进程会突然结束掉,不知道为什么,从日志上看也没有任何可疑之处,貌似就这样突然没了,接下来的日志都是重新启动tomcat之后打印的了.原因找不到,但要 ...
- Sql Server数据库备份和恢复:原理篇
本文与您探讨为什么Sql Server有完整备份.差异备份和事务日志备份三种备份方式,以及为什么数据库又有简单模式.完整模式和大容量日志模式这三种恢复模式.本文内容适用于2005以上所有版本的Sql ...
- TroubleShooting笔记--快照进程sp_replupdateschema和索引重建发生冲突
今天早上服务器出现大面积的阻塞,上去排查blocking,最后大概确定的问题是: rebuild index job(243) --->blocked--->sp_replupdatesc ...
- Task C# 多线程和异步模型 TPL模型
Task,异步,多线程简单总结 1,如何把一个异步封装为Task异步 Task.Factory.FromAsync 对老的一些异步模型封装为Task TaskCompletionSource 更通用, ...
- Pipedata3d - Welding Neck Flange
Pipedata3d - Welding Neck Flange eryar@163.com Abstract. Pipedata3d show piping component data in ta ...