LINQ 组合查询 和分页查询的使用
前端代码
<%@ Page Language="C#" AutoEventWireup="true" Debug="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="DatePicker/WdatePicker.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<br />
编号:<asp:TextBox ID="code_text" style="width:50px;" runat="server"></asp:TextBox>
汽车名:<asp:TextBox ID="carname_text" runat="server"></asp:TextBox>
系列:<asp:TextBox ID="brand_text" runat="server"></asp:TextBox>
时间段:<asp:TextBox ID="date_text1" class="date" runat="server"></asp:TextBox>至
<asp:TextBox ID="date_text2" class="date" runat="server"></asp:TextBox><br />
油耗:<asp:DropDownList ID="dr_oil" runat="server">
<asp:ListItem Text="全部" Value="null"></asp:ListItem>
<asp:ListItem Text="大于8.0" Value="dayu8.0"></asp:ListItem>
<asp:ListItem Text="5.0到8.0" Value="5.0zhi8.0"></asp:ListItem>
<asp:ListItem Text="低于5.0" Value="diyu5.0"></asp:ListItem>
</asp:DropDownList>
排量:<asp:TextBox ID="p_text1" runat="server"></asp:TextBox>至
<asp:TextBox ID="p_text2" runat="server"></asp:TextBox>
价格:<asp:TextBox ID="price_text1" runat="server"></asp:TextBox>至
<asp:TextBox ID="price_text2" runat="server"></asp:TextBox>
<asp:Button ID="btn_select" runat="server" Text="查询" />
<br /><br />
<table style="width:100%;background-color:navy;">
<tr style="font-size:25px;color:white;">
<td>Ids</td>
<td>编号</td>
<td>汽车名</td>
<td>系列</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("brand") %></td>
<td><%#Eval("time") %></td>
<td><%#Eval("oil") %></td>
<td><%#Eval("powers") %></td>
<td><%#Eval("exhaust") %></td>
<td><%#Eval("price") %></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table> 当前第[<asp:Label ID="lable_now" runat="server" Text=""></asp:Label>]页,共[<asp:Label ID="lable_zong" runat="server" Text=""></asp:Label>]页
<asp:Button ID="btn_begin" runat="server" Text="首页" />
<asp:Button ID="btn_prev" runat="server" Text="上一页" />
<asp:Button ID="btn_next" runat="server" Text="下一页" />
<asp:Button ID="btn_end" runat="server" Text="尾页" />
<asp:DropDownList ID="dr_jump" runat="server"></asp:DropDownList>
<asp:Button ID="btn_jump" runat="server" Text="跳转" />
</div>
</form>
</body>
</html>
<script type="text/javascript">
var date = document.getElementsByClassName("date");
for (var i = ; i < date.length; i++)
{
date[i].onfocus = function () {
WdatePicker({ readOnly: true, maxDate: '%y-%M-%d' });
}
}
</script>
后端代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page
{
//每一页 显示多少条数据 5条
int pagecount = ; #region 页面加载时 绑定的数据
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{ Repeater1.DataSource = SelectToList().Take(pagecount);
Repeater1.DataBind();
lable_now.Text = ""; } // 绑定事件
btn_select.Click += btn_select_Click;
btn_begin.Click += btn_begin_Click;
btn_end.Click += btn_end_Click;
btn_next.Click += btn_next_Click;
btn_prev.Click += btn_prev_Click;
btn_jump.Click += btn_jump_Click;
#endregion
} void btn_jump_Click(object sender, EventArgs e)
{
int a = Convert.ToInt32(dr_jump.SelectedValue);
if (a == )
{
btn_begin.Visible = false;
btn_prev.Visible = false;
btn_end.Visible = true;
btn_next.Visible = true;
}
else if (a.ToString() == lable_zong.Text)
{
btn_end.Visible = false;
btn_next.Visible = false;
btn_begin.Visible = true;
btn_prev.Visible = true;
}
else
{
btn_begin.Visible = true;
btn_prev.Visible = true;
btn_end.Visible = true;
btn_next.Visible = true;
}
Repeater1.DataSource = SelectToList().Skip((a - ) * pagecount).Take(pagecount);
Repeater1.DataBind();
lable_now.Text = a.ToString();
} void btn_prev_Click(object sender, EventArgs e)
{ int a = Convert.ToInt32(lable_now.Text) - ;
//假设到 首页 上一页 和 首页隐藏
if (a < )
{
btn_begin.Visible = false;
btn_prev.Visible = false;
return;
}
btn_begin.Visible = true;
btn_prev.Visible = true;
btn_end.Visible = true;
btn_next.Visible = true;
Repeater1.DataSource = SelectToList().Skip((a - ) * pagecount).Take(pagecount);
Repeater1.DataBind();
lable_now.Text = a.ToString();
} void btn_next_Click(object sender, EventArgs e)
{ int a = Convert.ToInt32(lable_now.Text) + ;
//假设到尾页时 下一页和尾页隐藏
if (a > Convert.ToInt32(lable_zong.Text))
{ btn_end.Visible = false;
btn_next.Visible = false;
return;
}
btn_begin.Visible = true;
btn_prev.Visible = true;
btn_end.Visible = true;
btn_next.Visible = true;
Repeater1.DataSource = SelectToList().Skip((a - ) * pagecount).Take(pagecount);
Repeater1.DataBind();
lable_now.Text = a.ToString();
} void btn_end_Click(object sender, EventArgs e)
{
//假设到尾页时 下一页和尾页隐藏 上一页和首页显示
btn_end.Visible = false;
btn_next.Visible = false;
btn_begin.Visible = true;
btn_prev.Visible = true;
//数据显示尾页数据
int a = Convert.ToInt32(lable_zong.Text);
Repeater1.DataSource = SelectToList().Skip((a - ) * pagecount).Take(pagecount);
Repeater1.DataBind();
lable_now.Text = a.ToString();
} void btn_begin_Click(object sender, EventArgs e)
{
//假设 到首页时 上一页和首页隐藏
btn_begin.Visible = false;
btn_prev.Visible = false;
btn_end.Visible = true;
btn_next.Visible = true;
//数据 首页 数据绑定
Repeater1.DataSource = SelectToList().Take(pagecount);
Repeater1.DataBind();
lable_now.Text = "";
} void btn_select_Click(object sender, EventArgs e)
{ lable_now.Text = "";
Repeater1.DataSource = SelectToList().Take(pagecount);
Repeater1.DataBind();
} //查询数据的方法
public List<car> SelectToList()
{
using (CarDataContext con = new CarDataContext())
{
List<car> clist = con.car.ToList();
//编号 code
if (code_text.Text.Trim().Length > )
{
//包含 code
clist = clist.Where(r => r.code.Contains(code_text.Text.Trim())).ToList();
}
//查汽车名
if (carname_text.Text.Trim().Length > )
{ clist = clist.Where(r => r.name.Contains(carname_text.Text.Trim())).ToList();
}
//查时间段
if (date_text1.Text.Trim().Length > )
{
clist = clist.Where(r => Convert.ToDateTime(r.time).Date >= Convert.ToDateTime(date_text1.Text).Date).ToList(); }
if (date_text2.Text.Trim().Length > )
{
clist = clist.Where(r => Convert.ToDateTime(r.time).Date <=Convert.ToDateTime(date_text2.Text).Date).ToList();
}
//查油耗 oil
if (dr_oil.SelectedValue == "dayu8.0")
{
clist = clist.Where(r => Convert.ToDecimal(r.oil) >= Convert.ToDecimal(8.0)).ToList();
}
else if (dr_oil.SelectedValue == "5.0zhi8.0")
{
clist = clist.Where(r => Convert.ToDecimal(r.oil) > Convert.ToDecimal(5.0) && Convert.ToDecimal(r.oil) < Convert.ToDecimal(8.0)).ToList();
}
else if (dr_oil.SelectedValue == "diyu5.0")
{
clist = clist.Where(r => Convert.ToDecimal(r.oil) <= Convert.ToDecimal(5.0)).ToList();
}
//查 排量exhaus列
if (p_text1.Text.Trim().Length > )
{
clist = clist.Where(r => Convert.ToInt32(r.exhaust) >= Convert.ToInt32(p_text1.Text.Trim())).ToList();
}
if (p_text2.Text.Trim().Length > )
{
clist = clist.Where(r => Convert.ToInt32(r.exhaust) <= Convert.ToInt32(p_text2.Text.Trim())).ToList();
}
//查价格price
if (price_text1.Text.Trim().Length > )
{
clist = clist.Where(r => Convert.ToDecimal(r.price) >= Convert.ToDecimal(price_text1.Text.Trim())).ToList();
}
if (price_text2.Text.Trim().Length > )
{
clist = clist.Where(r => Convert.ToDecimal(r.price) <= Convert.ToDecimal(price_text2.Text.Trim())).ToList();
}
int a = Convert.ToInt32(Math.Ceiling(Convert.ToDecimal(clist.Count) / pagecount));
lable_zong.Text = a.ToString(); dr_jump.Items.Clear();
for (int i = ; i <= a; i++)
{
ListItem li = new ListItem(i.ToString(), i.ToString());
dr_jump.Items.Add(li);
} return clist;
}
} }
LINQ 组合查询 和分页查询的使用的更多相关文章
- Linq高级查询,分页查询及查询分页结合
一.高级查询与分页查询 1.以...开头 StartsWith Repeater1.DataSource=con.Users.Where(r=>r.Nickname.StartsWith( ...
- SQL Server -- 回忆笔记(四):case函数,索引,子查询,分页查询,视图,存储过程
SQL Server知识点回忆篇(四):case函数,索引,子查询,分页查询,视图,存储过程 1. CASE函数(相当于C#中的Switch) then '未成年人' else '成年人' end f ...
- MySQL——优化嵌套查询和分页查询
优化嵌套查询 嵌套查询(子查询)可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中.嵌套查询写起来简单,也容易理解.但是,有时候可以被更有效率的连接(JOIN ...
- SQL语句or查询,union all查询,分页查询,分组,AND查询
一.OR查询 1.在AND多个筛选条件和一个or条件时,如果没有括号包裹,or会就近原则包裹之后的所有and条件,也就是同级的多个and条件只能对,or条件的一边起作用 2.如果or条件两边的筛选条件 ...
- DQL---连接查询(内连接、外连接)、子查询、分页查询
一.连接查询 1.连接查询建立在有相互关系的两个表间,进行两个及两个以上的表或视图的查询. 2.对n张表进行查询,至少需要n-1个连接表的条件. 二.笛卡尔积(容易造成数据库宕机) 1.指表中每行元素 ...
- hibernate总记录数查询和分页查询
//参考代码 //第一种方法: String hql = "select count(*) from User as user"; Integer count = (Integer ...
- TP条件查询和分页查询
一.条件查询 前端页面 <!doctype html> <html> <head> <meta charset="utf-8"> & ...
- Oracle子查询相关内容(包含TOP-N查询和分页查询)
本节介绍Oracle子查询的相关内容: 实例用到的数据为oracle中scott用户下的emp员工表,dept部门表,数据如下: 一.子查询 1.概念:嵌入在一个查询中的另一个查询语句,也就是说一个查 ...
- mysql-in关键字,分组查询,分页查询
1. in关键字,组查询 # 使用or来查询的化,不方便而且参数一多比较傻 select * from users where id=1 or id=2 or id=4; select * from ...
- Elasticsearch教程(九) elasticsearch 查询数据 | 分页查询
Elasticsearch 的查询很灵活,并且有Filter,有分组功能,还有ScriptFilter等等,所以很强大.下面上代码: 一个简单的查询,返回一个List<对象> .. ...
随机推荐
- 搭建Node+NPM+Grunt+Ruby开发环境
序 最近尝试了一下CoffeeScript,和Sass,不得不说这两个搭配起来的确是不错的选择,熟悉以后基本上开发就比较快速了. 当然要开发这个首先需要搭建环境,这里就需要有Node.NPM.Grun ...
- 04_数据库升级onUpgrade&ondowngrade
如果想操作多个数据库就不要把数据库的名字写死了 public MyOpenHelper(Context context, String name){ //第一个参数上下文 //第二个参数 数据库的名字 ...
- AngularJs(Part 4)--Modules depending on other Modules
Angular does an excellent job of managing object dependencies. it can even take care of module depen ...
- In-App Purchase Programming Guide----(八) ---- Preparing for App Review
Preparing for App Review After you finish testing, you’re ready to submit your app for review. This ...
- error: field has incomplete type
在头文件使用某一自定义的类的指针或引用时,只需要前置声明该类即可,然而如果该类中有静态成员时,必须包含该类的头文件,而不是使用前置声明.
- 慕课网java就业班级
家里电脑教程路径: F:\教程\java-慕课 开发工具路径: D:\java 公司电脑:开发工具路径 J:\java\开发工具 教程路径: G:\学习中\廖雪峰的java教程\1-Java快速入门\ ...
- Redis使用的相关问题
Redis用那些数据结构? 字符串类型String 字典Hash 列表List 集合Set 有序集合SortedSet HyperLogLog.Geo.Pub/Sub Redis Module.Blo ...
- PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
一般在默认的普通PHP文件中输出一个未定义声明的变量是不会报错误的,但在codeigniter框架下却要报错误,这对于想集成 添加 和 修改 页面于一体的”懒人”很不方便,由于是初学者开始还想怎么在代 ...
- SQL Server(五)——常用函数 转
1.数学函数:操作一个数据,返回一个结果 --取上限ceiling select code,name,ceiling(price) from car ; --取下限 floor select floo ...
- 在 Ubuntu 上安装 Protobuf 3
什么时候需要安装 如果使用 protoc 命令,遇到 Protoc not found,表示未安装.或者,执行时出现错误:This parser only recognizes "proto ...