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< ...
随机推荐
- How To Debug Qmake Pro File
对于程序代码,我们经常使用到调试. 可是,对于有些项目的配置文件,比如Qt的Pro文件, 一个项目复杂的话,Pro文件就很容易出错. 此时的Pro文件,如果也能调试的话,那么是十分的快捷方便的. 解决 ...
- Linux内核分析 - 网络[十四]:IP选项
Linux内核分析 - 网络[十四]:IP选项 标签: linux内核网络structsocketdst 2012-04-25 17:14 5639人阅读 评论(1) 收藏 举报 分类: 内核协议栈 ...
- 探究算子find_shape_model中参数MaxOverlap的准确意思
基于形状的模板查找算子: find_shape_model(Image : : ModelID, AngleStart, AngleExtent, MinScore, NumMatches, MaxO ...
- TF Boys (TensorFlow Boys ) 养成记(六): CIFAR10 Train 和 TensorBoard 简介
圣诞节玩的有点嗨,差点忘记更新.祝大家昨天圣诞节快乐,再过几天元旦节快乐. 来继续学习,在/home/your_name/TensorFlow/cifar10/ 下新建文件夹cifar10_train ...
- 统计学中z分布、t分布、F分布及χ^2分布
Z就是正态分布,X^2分布是一个正态分布的平方,t分布是一个正态分布除以(一个X^2分布除以它的自由度然后开根号),F分布是两个卡方分布分布除以他们各自的自由度再相除 比如X是一个Z分布,Y(n)=X ...
- POJ2349 Arctic Network 2017-04-13 20:44 40人阅读 评论(0) 收藏
Arctic Network Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 19113 Accepted: 6023 D ...
- 软件项目第一个Sprint评分
第一组 跑男 跑男组他们设计的是极速蜗牛小游戏,他们的界面背景图片做的挺漂亮,现在为止也实现了大部分功能, 但是我没有太听懂他们的游戏规则. 因为蜗牛出发后,每次碰到屏幕边缘后都会有确定的反弹结果,也 ...
- linux下svn服务器的搭建
网上的教程实在是太恶心了,不是太老,就是有问题,刚参考的一篇文章也有问题.自己记录下来,以后用就方便了,现在一边重新安装一遍,一边记录.笔者亲测,今天是5月29号深夜. linux用的是centos6 ...
- Oracle索引技术研究
Oracle索引类型 B树索引 特定类型索引 确定索引列 主键和唯一键值列的索引 外键索引 其他合适的索引列 B树索引 B树索引算法 B树是指B-tree(Balanced Tree),B树的存在是为 ...
- wp调用百度服务api
通过百度开放平台申请api成功后,百度会提供一个application key简称ak和一个security key简称sk. 看一下某个服务url的格式 1. url前缀 2. 服务类型 3. 参数 ...