【2017-06-02】Linq高级查询,实现分页组合查询。
1、以XXX开头

2、以XXX结尾

3、模糊查询

4、求个数


5、求最大值

6、求最小值

7、求平均值

8、求和

9、升序

10、降序

11、分页
Skip()跳过多少条
Take()取多少条

12、分页组合查询
界面部分
<form id="form1" runat="server">
<div>
车名:<asp:TextBox ID="txt_carname" runat="server"></asp:TextBox>
油耗:<asp:DropDownList ID="dr_oil" runat="server">
<asp:ListItem Text="大于" Value=">"></asp:ListItem>
<asp:ListItem Text="小于" Value="<"></asp:ListItem>
<asp:ListItem Text="等于" Value="="></asp:ListItem>
<asp:ListItem Text="大于等于" Value=">="></asp:ListItem>
<asp:ListItem Text="大于等于" Value=">="></asp:ListItem>
</asp:DropDownList>
<asp:TextBox ID="txt_oil" runat="server"></asp:TextBox>
价格:<asp:DropDownList ID="dr_price" runat="server">
<asp:ListItem Text="全部" Value="null"></asp:ListItem>
<asp:ListItem Text="小于30万" Value=""></asp:ListItem>
<asp:ListItem Text="30-40万" Value=""></asp:ListItem>
<asp:ListItem Text="40-50万" Value=""></asp:ListItem>
<asp:ListItem Text="大于50万" Value=""></asp:ListItem> </asp:DropDownList> <asp:Button ID="Button1" runat="server" Text="查询" />
<table style="width: 100%; background-color: navy; text-align: center">
<tr style="height: 40px; color: white;">
<td>id</td>
<td>编号</td>
<td>车名</td>
<td>油耗</td>
<td>马力</td>
<td>价格</td>
</tr>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr style="background-color: white;">
<td><%#Eval("ids") %></td>
<td><%#Eval("code") %></td>
<td><%#Eval("name") %></td>
<td><%#Eval("oil") %></td>
<td><%#Eval("powers") %></td>
<td><%#Eval("price") %></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
当前第【 <asp:Label ID="lab_nownumber" runat="server" Text=""></asp:Label> 】页,一共【 <asp:Label ID="lab_maxnumber" runat="server" Text=""></asp:Label> 】页。
<asp:Button ID="btn_first" runat="server" Text="首页" /><asp:Button ID="btn_prev" runat="server" Text="上一页" /><asp:Button ID="btn_next" runat="server" Text="下一页" /><asp:Button ID="btn_last" runat="server" Text="尾页" />
</div>
</form>
后台代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; public partial class Main : System.Web.UI.Page
{
int PageCount = ;
protected void Page_Load(object sender, EventArgs e)
{
Button1.Click += Button1_Click;
btn_first.Click += btn_first_Click;
btn_next.Click += btn_next_Click;
btn_prev.Click += btn_prev_Click;
btn_last.Click += btn_last_Click;
if (!IsPostBack)
{
using (Data0216DataClassesDataContext con = new Data0216DataClassesDataContext())
{
Repeater1.DataSource = Data().Skip().Take(PageCount);
Repeater1.DataBind();
lab_maxnumber.Text = Max().ToString();
}
}
} void btn_last_Click(object sender, EventArgs e)
{
Repeater1.DataSource = Data().Skip((Max() - ) * PageCount);
Repeater1.DataBind();
lab_nownumber.Text = Max().ToString();
lab_maxnumber.Text = Max().ToString();
} void btn_prev_Click(object sender, EventArgs e)
{
int a = Convert.ToInt32(lab_nownumber.Text) - ;
if (a > )
{
Repeater1.DataSource = Data().Skip((a - ) * PageCount).Take(PageCount);
Repeater1.DataBind();
lab_nownumber.Text = a.ToString();
lab_maxnumber.Text = Max().ToString();
}
} void btn_next_Click(object sender, EventArgs e)
{
int a = Convert.ToInt32(lab_nownumber.Text) + ;
if (a <= Max())
{
Repeater1.DataSource = Data().Skip((a - ) * PageCount).Take(PageCount);
Repeater1.DataBind();
lab_nownumber.Text = a.ToString();
lab_maxnumber.Text = Max().ToString();
}
} void btn_first_Click(object sender, EventArgs e)
{
Repeater1.DataSource = Data().Skip().Take(PageCount);
Repeater1.DataBind();
lab_nownumber.Text = "";
lab_maxnumber.Text = Max().ToString();
} void Button1_Click(object sender, EventArgs e)
{
Repeater1.DataSource = Data().Skip().Take(PageCount);
Repeater1.DataBind();
lab_nownumber.Text = "";
lab_maxnumber.Text = Max().ToString();
} public List<car> Data()
{ using (Data0216DataClassesDataContext con = new Data0216DataClassesDataContext())
{
List<car> clist = con.car.ToList(); if (txt_carname.Text.Trim().Length > )
{
clist = clist.Where(r => r.name.Contains(txt_carname.Text.Trim())).ToList();
} if (txt_oil.Text.Trim().Length > )
{
if (dr_oil.SelectedValue == ">")
clist = clist.Where(r => r.oil > Convert.ToDecimal(txt_oil.Text)).ToList();
if (dr_oil.SelectedValue == "<")
clist = clist.Where(r => r.oil < Convert.ToDecimal(txt_oil.Text)).ToList();
if (dr_oil.SelectedValue == ">=")
clist = clist.Where(r => r.oil >= Convert.ToDecimal(txt_oil.Text)).ToList();
if (dr_oil.SelectedValue == "<=")
clist = clist.Where(r => r.oil <= Convert.ToDecimal(txt_oil.Text)).ToList();
if (dr_oil.SelectedValue == "=")
clist = clist.Where(r => r.oil == Convert.ToDecimal(txt_oil.Text)).ToList();
} if (dr_price.SelectedValue != "null")
{
if (dr_price.SelectedValue == "")
clist = clist.Where(r => r.price < ).ToList();
if (dr_price.SelectedValue == "")
clist = clist.Where(r => r.price >= && r.price < ).ToList();
if (dr_price.SelectedValue == "")
clist = clist.Where(r => r.price >= && r.price < ).ToList();
if (dr_price.SelectedValue == "")
clist = clist.Where(r => r.price >= ).ToList();
}
return clist;
}
}
public int Max()
{
return Convert.ToInt32(Math.Ceiling(Convert.ToDecimal(Data().Count) / PageCount));
}
}
【2017-06-02】Linq高级查询,实现分页组合查询。的更多相关文章
- 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.模糊查(包含) 1 public List<User> Select(string name) 2 { 3 return con.User.Where(r => ...
- linq分页组合查询
一.linq高级查 1.模糊查(字符串包含) 1 public List<User> Select(string name) 2 { 3 return con.User.Where(r = ...
- 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” ...
- 分页查询和分页缓存查询,List<Map<String, Object>>遍历和Map遍历
分页查询 String sql = "返回所有符合条件记录的待分页SQL语句"; int start = (page - 1) * limit + 1; int end = pag ...
- 013.子查询和分页子查询(sql实例)
--1 子查询 如果子查询和表连接都实现的时候,推荐用表连接实现( 一般:能用表连接实现的就用表连接,有些情况用表连接不能 或者不易实现的再选择子查询) 系统:缓存,执行计划技术手段 --1 wher ...
随机推荐
- 【c++基础】C++编写Config类读取配置文件
前言 系统程序一般需要读取参数文件,看到一个很好的Config类记录在此. 头文件Config.h //Config.h //re: https://blog.csdn.net/David_xtd/a ...
- QML使用Python的函数
有2种方法: 一. QML中定义一个信号,连接Python里的函数: 这里的函数不用特意指明为槽函数,普通函数即可. QML的信号连接Python的函数 QML:首先在QML中定义一个信号,这里的信号 ...
- Django:(01) 关于什么是Django?
一.从 WSGI 开始了解 Django 在了解 Django 之前有必要先了解一下 Python 被用于 Web 开发的基础协议——WSGI. 在开发 web 应用时,我们不希望接触到TCP连接.H ...
- VSCode插件Prettier配置
参考链接:https://blog.csdn.net/wengou3033/article/details/88749448 Prettier格式化配置
- Zookeeper概述、特点、数据模型
Zookeeper 1.Zookeeper概述 Zookeeper是一个工具,可以实现集群中的分布式协调服务. 所谓的分布式协调服务,就是在集群的节点中进行可靠的消息传递,来协调集群的工作. Zo ...
- hdoj3534(树形dp,求树的直径的条数)
题目链接:https://vjudge.net/problem/HDU-3534 题意:给出一棵树,求树上最长距离(直径),以及这样的距离的条数. 思路:如果只求直径,用两次dfs即可.但是现在要求最 ...
- 整体二分(模板一)静态区间第K大
#define IOS ios_base::sync_with_stdio(0); cin.tie(0); #include <cstdio>//sprintf islower isupp ...
- 数据库优化SQL
sql优化规则: 1.对于查询,尽量不要使用全表扫描,尽量在where子句以及order by所对应的字段建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放 ...
- php操作string的函数
函数库来源于:http://www.w3school.com.cn/php/php_ref_string.asp 我常用的 echo()------------输出一个或多个字符串. 如:echo ' ...
- Spring Boot 获取Bean对象实体
一.实现 ApplicationContextAware 接口 package com.zxguan; import org.springframework.beans.BeansException; ...