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 ...
随机推荐
- Navsion二次开发_学习笔记
CodeUnit Note This feature is documented in the Navision Application Server Technical White Paper. ...
- eventbus 备注
Event在整个系统中是单例的. EventBus.getDefault().register(this); 注册 EventBus.getDefault().unregister(this); 注销 ...
- 剑指Offer面试题:5.重建二叉树
一.题目:重建二叉树 题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序 ...
- Hadoop学习笔记—12.MapReduce中的常见算法
一.MapReduce中有哪些常见算法 (1)经典之王:单词计数 这个是MapReduce的经典案例,经典的不能再经典了! (2)数据去重 "数据去重"主要是为了掌握和利用并行化思 ...
- 3dmax模型制作备忘录
md2导出: http://thegreystudios.com/blog/?p=278 http://wenku.baidu.com/view/4d5652e2524de518964b7d89.ht ...
- 当MyEclipse突然异常关闭
今天的博文主要记录一个问题,就是当MyEclipse异常关闭后,再次开启环境,导致Tomcat无法启动的问题解决方案 问题描述:在MyEclipse启动或者是tomcat启动的时候出现:Address ...
- Tomcat7基于Redis的Session共享实战二
目前,为了使web能适应大规模的访问,需要实现应用的集群部署.集群最有效的方案就是负载均衡,而实现负载均衡用户每一个请求都有可能被分配到不固定的服务器上,这样我们首先要解决session的统一来保证无 ...
- Nodejs学习笔记(二)--- 事件模块
目录 简介及资料 事件常用函数及使用 emitter.on(event, listener) emitter.emit(event, [arg1], [arg2], [...]) emitter.on ...
- selenium的安装
一.安装selenium 通过pip命令安装selenium包:(pip的安装方法:http://www.cnblogs.com/zhengyihan1216/articles/6011640.htm ...
- 【Win10应用开发】通过拖放来打开文件
除了可以使用XXXFilePicker来浏览文件外,其实在UWP APP中,也可以向传统Windows窗口一样,通过拖放的方式来打开文件. 处理过程和WPF的原理差不多,毕竟都是一脉相承,于是,在学习 ...