组合查询:

方法一: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交集)、分页展示基础的更多相关文章

  1. Mybatis3.1-[tp_36-37]-_映射文件_select_resultMap关联查询__分步查询传递多列值&fetchType_discriminator鉴别器

    _分步查询传递多列值&fetchType_discriminator鉴别器 笔记要点出错分析与总结 Department.java bean public class Department { ...

  2. 关系数据库SQL之高级数据查询:去重复、组合查询、连接查询、虚拟表

    前言 接上一篇关系数据库SQL之基本数据查询:子查询.分组查询.模糊查询,主要是关系型数据库基本数据查询.包括子查询.分组查询.聚合函数查询.模糊查询,本文是介绍一下关系型数据库几种高级数据查询SQL ...

  3. 【知识库】-数据库_MySQL之高级数据查询:去重复、组合查询、连接查询、虚拟表

    简书作者:seay 文章出处: 关系数据库SQL之高级数据查询:去重复.组合查询.连接查询.虚拟表 回顾:[知识库]-数据库_MySQL之基本数据查询:子查询.分组查询.模糊查询 Learn [已经过 ...

  4. 【SQL查询】集合查询之INTERSECT

    [SQL查询]集合查询之INTERSECT 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~ ...

  5. LINQ延迟查询的例子

    //linq延迟查询.两次查询结果不同 List<string> l = new List<string>() { "aaa", "bbb&quo ...

  6. Linq中延迟查询和立即查询

    //立即查询 public static void NowExecute() { var results = new int[]{5,4,3,2,1,6,7,8,9,0 }; int i = 0; v ...

  7. LINQ学习系列-----2.3 迭代器带来的延迟查询

    此篇博文承接上一篇博文: LINQ学习系列-----2.2 迭代器 一.第一次执行                      废话不多说,上源码: 执行结果下图: 为什么会这样?其实原因很简单 fro ...

  8. MongoDB 组合多个条件查询($and、$in、$gte、$lte)

    一,问题描述 数据格式: id, timeStamp,count 条件1:查询 某个时间段 内的数据: timeStamp BETWEEN startTime AND endTime.比如 timeS ...

  9. LINQ中的"延迟查询"特性【转】

    本文转载自:LINQ中的"延迟查询"特性 详细了解“延迟查询”:C#学习笔记(八)—–LINQ查询之延迟执行 很多标准查询操作符的设计原型都是返回一个IEnumerable< ...

随机推荐

  1. 35-Python - 去除list中的空字符

    https://www.cnblogs.com/yspass/p/9434366.html list1 = ['122', '2333', '3444', '', '', None] a = list ...

  2. C#获取MAC地址的几种方法

    首先需要用到的一些方法和类: public enum NCBCONST { NCBNAMSZ = 16, MAX_LANA = 254, NCBENUM = 0x37, NRC_GOODRET = 0 ...

  3. nignx reload的时候报错invalid PID number

    第一种思路是从PID号着手,提示无效PID号时nginx.pid文件为空,将进程的PID号追加到空的nginx.pid上,问题解决: 还有问题,请参考:https://www.cnblogs.com/ ...

  4. How to setup Laravel Homestead in Windows

    How to setup Laravel Homestead in Windows by JBorbón  17. March 2017   PHP   8 Developing with PHP u ...

  5. tomcat服务器输入localhost可以访问,ip无法访问解决办法

    最近在开发项目中,遇到的一个问题是: 在 tomcat中发布一个web项目,但是发布成功后,只能用http://localhost:8080/fm访问项目,不能用 http://127.0.0.1:8 ...

  6. eclipse find 两位数

    查找两位数

  7. PHP(六)PHP和HTML混合的一种形式

  8. .NET基础 (13)IFormattable和IformatProvider的使用

    IFormattable和IformatProvider的使用1 如何使用IFormattable接口实现格式化输出2 如何告诉类型格式化输出的方式 IFormattable和IformatProvi ...

  9. 看懂gc日志

    使用的是:+PrintGCDetails -XX:+PrintGCTimeStamps 输出的日志格式: [Times: user=0.03 sys=0.00, real=0.01 secs] 363 ...

  10. asp.net——XML格式导出Excel

    下面介绍一种导出Excel的方法: 此方法不需要在服务器上安装Excel,采用生成xml以excel方式输出到客户端,可能需要客户机安装excel,所以也不会有乱七八糟的权限设定,和莫名其妙的版本问题 ...