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<对象> .. ...
随机推荐
- K-S Test
K-S test, test for the equality of continuous, one-dimensional probability distribution that can be ...
- 第3章 编写ROS程序-3
1.订阅者程序 我们继续使用 turtlesim 作为测试平台,订阅 turtlesim_node发布的/turtle1/pose 话题. 这一话题的消息描述了海龟的位姿 (位置和朝向) .尽管目前你 ...
- sql中的begin....end
Begin...End之间的是一个语句块,一般Begin...End用在 ( 相当于 {})whileif等语句中在T_SQL中,if/while后只能紧跟一条sql语句,如果有多条则应该用Beg ...
- VC OnCtlColor函数来修改控件背景颜色
CWnd::OnCtlColor afx_msg HBRUSH OnCtlColor( CDC* pDC, CWnd* pWnd, UINT nCtlColor ); 返回值:OnCtlColor必须 ...
- HDU - 6156 2017CCPC网络赛 Palindrome Function(数位dp找回文串)
Palindrome Function As we all know,a palindrome number is the number which reads the same backward a ...
- CentOS软件包管理
rpm安装包管理 指令 说明 rpm -i XX.rpm 安装XX.rpm软件包 rpm -qa XX 查看XX软件包安装的所有文件 rpm -e XX 卸载XX软件包 yum管理软件 指令 说明 y ...
- unity update优化
http://forum.china.unity3d.com/thread-13968-1-1.html Unity有个消息系统,它可以在运行中当发生指定事件时调用你在脚本中定义的那些魔术方法.这是个 ...
- AI决策算法 之 GOAP (三)
源码地址:http://pan.baidu.com/s/1dFwzmfB 这篇我们使用上篇文章写的GOAP框架来完成一个实例: 实例内容: AI有10HP, 需要去站岗,站岗完成扣5HP 当HP< ...
- VM Fusion配置静态IP和物理机通讯
Vm虚拟机在WIndow系统上和物理机进行通讯很方便,但是在Mac上简直跟吃了屎一样难用的要死,物理机断了网以后还不能和虚拟机通讯, 如果在windows上做开发,也是简直和吃了屎一样,难用的要屎,这 ...
- java基础第四篇之面向对象
7.封装与面向对象 a.方法: public static void main(String[] args) { } 一般定义标准: 形参:一般把 不确定的量或者变化的量定义在形参位置//圆的的半径, ...