C#-WebForm-组合查询(Queryable延迟查询、Intersect交集)、分页展示基础
组合查询:
方法一:Queryable<> 延迟查询
其特点是:读到词句代码时不会立即执行,而是在进行数据绑定时执行
优点:此期间可以进行添加查询条件,以减少数据库查询内容,来减少内存占用量
//<查询>按钮
void btn_select_Click(object sender, EventArgs e)
{
using (CarDataContext con = new CarDataContext())
{
//进行查询,将查询到的数据放入Queryable集合中
IQueryable<Car> clist = con.Car.AsQueryable();
//其特点是:读到词句代码时不会立即执行,而是在进行数据绑定时执行
//优点:此期间可以进行添加查询条件,以减少数据库查询内容,来减少内存占用量 //对每一个条件文本框进行判断,是否有限制条件
string name = txt_name.Text.Trim();
string brand = txt_brand.Text.Trim();
string price = txt_price.Text.Trim(); if (name.Length > )
{
//如果有限制条件则添加查询条件
clist = clist.Where(r => r.Name.Contains(name.Trim()));
} if (brand.Length > )
{
clist = clist.Where(r => r.Brand.Contains(brand.Trim()));
} if (price.Length > )
{
string s = DropDownList1.SelectedValue;
if (s == "=")
clist = clist.Where(r => r.Price == Convert.ToDecimal(price));
if (s == ">=")
clist = clist.Where(r => r.Price >= Convert.ToDecimal(price));
if (s == "<=")
clist = clist.Where(r => r.Price <= Convert.ToDecimal(price));
} //绑定数据-此时Queryable进行数据库查询并绑定数据
Repeater1.DataSource = clist;
Repeater1.DataBind();
}
方法二:Intersect 交集
void Button2_Click(object sender, EventArgs e)
{
//先按照查询条件,将所有的数据分别查询全部出来
using(mydbDataContext con = new mydbDataContext())
{
var nameList = con.car.AsQueryable();
var brandList = con.car.AsQueryable();
var priceList = con.car.AsQueryable(); string name = txt_name.Text.Trim();
string brand = txt_brand.Text.Trim();
string price = txt_price.Text.Trim(); if (name.Length > )
{
nameList = nameList.Where(r => r.name.Contains(name));
}
if (brand.Length > )
{
brandList = brandList.Where(r => r.brand.Contains(brand));
}
if (price.Length > )
{
string aa = DropDownList1.SelectedValue;
if (aa == "=")
priceList = priceList.Where(r => r.price == Convert.ToDecimal(price));
if (aa == ">=")
priceList = priceList.Where(r => r.price >= Convert.ToDecimal(price));
if (aa == "<=")
priceList = priceList.Where(r => r.price <= Convert.ToDecimal(price));
} //取集合的交集
var allList = nameList.Intersect(brandList).Intersect(priceList); Repeater1.DataSource = allList;
Repeater1.DataBind(); }
}
分页展示:
Repeater1.DataSource = clist.Skip(Count1).Take(Count2);
Repeater1.DataBind();
int AllDataCout = clist.Count();
int Count1——跳过多少条数据 int Count2——取多少条数据 AllDataCout ——查询出来的数据一共多少条
C#-WebForm-组合查询(Queryable延迟查询、Intersect交集)、分页展示基础的更多相关文章
- Mybatis3.1-[tp_36-37]-_映射文件_select_resultMap关联查询__分步查询传递多列值&fetchType_discriminator鉴别器
_分步查询传递多列值&fetchType_discriminator鉴别器 笔记要点出错分析与总结 Department.java bean public class Department { ...
- 关系数据库SQL之高级数据查询:去重复、组合查询、连接查询、虚拟表
前言 接上一篇关系数据库SQL之基本数据查询:子查询.分组查询.模糊查询,主要是关系型数据库基本数据查询.包括子查询.分组查询.聚合函数查询.模糊查询,本文是介绍一下关系型数据库几种高级数据查询SQL ...
- 【知识库】-数据库_MySQL之高级数据查询:去重复、组合查询、连接查询、虚拟表
简书作者:seay 文章出处: 关系数据库SQL之高级数据查询:去重复.组合查询.连接查询.虚拟表 回顾:[知识库]-数据库_MySQL之基本数据查询:子查询.分组查询.模糊查询 Learn [已经过 ...
- 【SQL查询】集合查询之INTERSECT
[SQL查询]集合查询之INTERSECT 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~ ...
- LINQ延迟查询的例子
//linq延迟查询.两次查询结果不同 List<string> l = new List<string>() { "aaa", "bbb&quo ...
- Linq中延迟查询和立即查询
//立即查询 public static void NowExecute() { var results = new int[]{5,4,3,2,1,6,7,8,9,0 }; int i = 0; v ...
- LINQ学习系列-----2.3 迭代器带来的延迟查询
此篇博文承接上一篇博文: LINQ学习系列-----2.2 迭代器 一.第一次执行 废话不多说,上源码: 执行结果下图: 为什么会这样?其实原因很简单 fro ...
- MongoDB 组合多个条件查询($and、$in、$gte、$lte)
一,问题描述 数据格式: id, timeStamp,count 条件1:查询 某个时间段 内的数据: timeStamp BETWEEN startTime AND endTime.比如 timeS ...
- LINQ中的"延迟查询"特性【转】
本文转载自:LINQ中的"延迟查询"特性 详细了解“延迟查询”:C#学习笔记(八)—–LINQ查询之延迟执行 很多标准查询操作符的设计原型都是返回一个IEnumerable< ...
随机推荐
- 4-memset函数总结
头文件:cstring 或 memory 一般用处: memset(arr, 0, sizeof(aar)); //初始化为0 memset(arr, -1, sizeof(aar)); / ...
- MySQL 系列(二)Jdbc
MySQL 系列(二)Jdbc 一.Jdbc 基本操作 import java.sql.Connection; import java.sql.DriverManager; import java.s ...
- Jakarta Commons Cookbook
Cookbook就是工具书,应该是前年看的,在中关村看的影印版,全英文,本书主要讲解了一下模块: Core:BeanUtils,Lang,Collections,logging Db:DbUtil ...
- 马婕 2014MBA专硕考试报刊选读 5 朱令案悬而未决引起全社会的关注(转)
http://blog.sina.com.cn/s/blog_3e66af4601016pkh.html Why hasn’t doubt over poisoning subsided? 公众对于朱 ...
- 【译】微型ORM:PetaPoco【不完整的翻译】(转)
出处:http://www.cnblogs.com/youring2/archive/2012/06/04/2532130.html PetaPoco是一款适用于.Net 和Mono的微小.快速.单文 ...
- CI框架下的PHP增删改查总结
controllers下的 cquery.php文件 <?php class CQuery extends Controller { //构造函数 function CQuery() { par ...
- POJ2031 Building a Space Station 2017-04-13 11:38 48人阅读 评论(0) 收藏
Building a Space Station Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 8572 Accepte ...
- ETL工作流缓慢原因查找方法
What steps do you take to determine the bottleneck of a slow running ETL process? 如果ETL进程运行较慢,需要分哪几步 ...
- 转:css实现强制不换行/自动换行/强制换行
css实现强制不换行/自动换行/强制换行 [日期:2007-08-22] 来源: 作者: [字体:大 中 小] 强制不换行 div{ white-space:nowrap;} 自动换行 div{ ...
- linux 用户/用户组添加修改删除(ubuntu/centos)
一.LINUX(UBUNTU/CENTOS)用户添加删除修改 1.建用户: adduser web //新建web用户 useradd web ...