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<对象> .. ...
随机推荐
- SendMail发送回执及读取收件箱
一.SendMail发送有回执提示 1.邮件发送配置 Properties props = new Properties(); String smtp = "smtp.qq.com" ...
- Elasticsearch5.X Mapping详解
0.引言 在关系型数据库如Mysql中,设计库表需要注意的是: 1)需要几个表: 2)每个表有哪些字段: 3)表的主键及外键的设定——便于有效关联. 表的设计遵守范式约束,考虑表的可扩展性,避免开发后 ...
- javascript 函数属性prototype(转)
在JavaScript中并没有类的概念,但javascript中的确可以实现重载,多态,继承.这些实现其实方法都可以用JavaScript中的引用和变量作用域结合prototype来解释. 1.pro ...
- DOM,date,字符串
ECMAscript Dom doc Bom Browerwindow --窗口. location --地址栏. history --历史. document --文档. statue --任务栏& ...
- HDU - 6201 transaction transaction transaction(树形dp取两点)
transaction transaction transaction Kelukin is a businessman. Every day, he travels around cities to ...
- uoj#280. 【UTR #2】题目难度提升(构造)
传送门 咱先膜一下\(GXZ\)再说 我们先把序列从小到大排序,然后分情况讨论 无解是不存在的,从小到大输出所有数肯定可行 情况一,如果\(a[mid]=a[mid+1]\),因为最终的中位数也是它们 ...
- express使用post方法
express有get.post和在路由后面跟参数,这三种接参方式,这篇文章我主要记录post使用方法 1.json解析中间件(body-parser) cnpm install body-parse ...
- 消息中间件之ActiveMQ(非原创)
文章大纲 一.消息中间件基础知识二.ActiveMQ介绍三.ActiveMQ下载安装(Windows版本)四.Java操作ActiveMQ代码实战五.Spring整合ActiveMQ代码实战六.项目源 ...
- CentOS6.7 i686上安装JDK7
内核版本: [root@heima01 java]# uname -a Linux heima01 2.6.32-573.el6.i686 #1 SMP Thu Jul 23 12:37:35 UTC ...
- Django之extra
extra过滤 extra extra(select=None, where=None, params=None, tables=None, order_by=None, select_params= ...