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< ...
随机推荐
- 递归中traverse小人 & dc女王的区别
TRAVERSE 是一个小人, 拿着一个记事本, 顺着二叉树走, 走过一个, 在本子上面记下来 DIVIDE & CONQUER 是女王接到这个任务, 找两个小弟A和B, 让A和B先去收集, ...
- Sophus VS2010编译不支持?C++11语法的缘故。那有没有不带C++11特性的Sophus版本呢?
Eigen:3.1 3.0 Ceres:No Sophus: Sophus支不支持Windows编译?官网写的是通过了Windows的编译的 linux, os x: windows: code ...
- Java 代理模式(二) Java中的动态代理
动态代理类 Java动态代理类位于java.lang.reflect包下,一般主要涉及到以下两个类: 1.Interface InvocationHandler 该接口中仅定义了一个方法: Objec ...
- HRBUST1313 火影忍者之~静音 2017-03-06 16:11 39人阅读 评论(0) 收藏
火影忍者之-静音 传说中的火之国一年一度的公务员选拔又开始了!木叶忍者村此次也要从中选拔出5人来,作为即将上任的新火影纲手的小弟-,可是报考公务员的人数实在是太--多啦!所以纲手的贴身随从-静音小姐, ...
- 词频统计-part2
看到这个问题为之一愣,这简单多了,在第一部分的基础上把那些存储结构删了,把排序算法删了,设置一个变量,遇到则加一,直到读到文件尾.最后输出单词出现次数. 程序比较简单也比较,下面就把程序贴出来: pa ...
- linux下强行umount卸载设备
卸载NFS,结果出现无法卸载的情况 umount /mnt/umount: /mnt: device is busy使用umount -f,问题依旧umount -f /mnt/umount2: De ...
- 详解CSS float属性
CSS中的float属性是一个频繁用到的属性,对于初学者来说,如果没有理解好浮动的意义和表现出来的特性,在使用的使用很容易陷入困惑,云里雾里,搞不清楚状态.本文将从最基本的知识开始说起,谈谈关于浮动的 ...
- Buffer Pool--内存相关术语
虚拟地址空间(virtual address space): 供应用程序能够申请访问的最大地址空间,32位系统上为4GB,64位系统上是8TB,虚拟地址空间映射的数据不一定存放在物理内存中,还可能存放 ...
- JAVA环境下利用solrj二次开发SOlR搜索的环境部署常见错误
问题一:出现控制台坏的响应错误一Bad request 控制台出现错误如下: Bad Request request: http://hostIP:8983/solr/update?wt=javabi ...
- Katalon Studio简单使用(二)
距离上一篇更新katalon学习部分已有两个月的时间 ,我的博文的访问量为400多,(*^__^*) 嘻嘻…… 说明还是很多同学在学习这个小tools的.所以再记录下 近两个月来对katalon的体验 ...