Linq(高级查询)
一、条件查
public List<Users> ss(string ids)
{
List<Users> ulist=new List<Users>();
声明使用Linq类
using (StudentDataContext con = new StudentDataContext())
{ 创建条件
ulist =con.Users.Where(r=>r.Ids.ToString()==ids).ToList();
}
return ulist;
}
二、高级查
1、以xx开头:
public List<Users> ss(string ids)
{
List<Users> ulist=new List<Users>();
using (StudentDataContext con = new StudentDataContext())
{ //开头方法(“字符串”)
ulist = con.Users.Where(r => r.Username.StartsWith("赵")).ToList();
}
return ulist;
}
2、以xx结尾:
ulist = con.Users.Where(r => r.Username.EndsWith("赵")).ToList();
3、包含xx:
ulist = con.Users.Where(r => r.Username.Contains("赵")).ToList();
4、个数:
(1)有变量接收:ulist.Count;或con.users.Count()
(2)无接受:ulist.Count();
5、最大值:con.Users.Max(r=>r.Ids)
6、最小值:con.Users.Min(r=>r.Ids)
7、平均值:con.Users.Average(r=>r.Ids)
8、求和:con.Users.Sum(r=>r.Ids)
9、排序:
(1)、OrderBy 按升序对值进行排序。 con.Users.OrderBy(r=>r.Ids)
(2)、OrderByDescending 按降序对值进行排序
(3)、ThenBy 按升序执行次要排序。
(4)、ThenByDescending 按降序执行次要排序。
10、分页查询
总共跳转条数 单次显示条数
con.Users.Skip((a - 1) * page).Take(page);
11、组合查询
组合查询是指将前条件查询结果基础上对后集合进行查询
例:
int page = ;
protected void Page_Load(object sender, EventArgs e)
{
string id = Request["id"];
if (!IsPostBack)
{
using (StudentDataContext con = new StudentDataContext())
{
DropDownList1.DataSource = con.Nation.ToList();
DropDownList1.DataTextField = "NationName";
DropDownList1.DataValueField = "NationCode";
DropDownList1.DataBind();
Users u = con.Users.Where(w => w.Ids.ToString() == id).FirstOrDefault();
if (u == null)
{
Label4.Text = "";
}
else
{
TextBox1.Text = u.Username;
TextBox2.Text = u.Password;
TextBox5.Text = u.Password;
TextBox3.Text = u.Nikename;
if (u.Sex == false)
{
RadioButtonList1.Items[].Selected = true;
}
TextBox4.Text = Convert.ToDateTime(u.Birthday).ToString("yyyy年MM月dd日");
foreach (ListItem li in dr_nation.Items)
{
if (li.Value == u.Nation)
li.Selected = true;
}
}
}
}
if (Request.Cookies["name"] != null)
{
string a = HttpUtility.UrlDecode(Request.Cookies["name"].Value, System.Text.Encoding.GetEncoding("utf-8"));
Label1.Text ="你好,"+ a;
}
if (!IsPostBack)
{
using (StudentDataContext con = new StudentDataContext())
{
dr_nation.DataSource = con.Nation.ToList();
dr_nation.DataTextField = "NationName";
dr_nation.DataValueField = "NationCode";
dr_nation.DataBind();
Repeater1.DataSource =con.Users.ToList().Take(page);
Repeater1.DataBind();
Label2.Text = "";
Label3.Text = (Math.Ceiling(Convert.ToDecimal(con.Users.ToList().Count) / page)).ToString();
}
}
Button1.Click += Button1_Click;
bt_first.Click += bt_first_Click;
bt_last.Click += bt_last_Click;
bt_nex.Click += bt_nex_Click;
bt_up.Click += bt_up_Click;
}
void bt_up_Click(object sender, EventArgs e)
{
if (Label2.Text == "")
{
return;
}
using (StudentDataContext con = new StudentDataContext())
{
int a = Convert.ToInt32(Label2.Text) - ;
Repeater1.DataSource = Data(con).Skip((a - ) * page).Take(page);
Repeater1.DataBind();
Label2.Text = Label3.Text;
}
}
void bt_nex_Click(object sender, EventArgs e)
{
using (StudentDataContext con = new StudentDataContext())
{
if (Label2.Text == (Math.Ceiling(Convert.ToDecimal(Data(con).Count) / page)).ToString())
{
return;
}
int a = Convert.ToInt32(Label2.Text) + ;
Repeater1.DataSource = Data(con).Skip((a - ) * page).Take(page);
Repeater1.DataBind();
Label2.Text = Label3.Text;
}
}
void bt_last_Click(object sender, EventArgs e)
{
using (StudentDataContext con = new StudentDataContext())
{
Repeater1.DataSource = Data(con).Skip((Convert.ToInt32(Label3.Text) - ) * page).Take(page);
Repeater1.DataBind();
Label2.Text = Label3.Text;
}
}
void bt_first_Click(object sender, EventArgs e)
{
using (StudentDataContext con = new StudentDataContext())
{
Repeater1.DataSource = Data(con).Take(page);
Repeater1.DataBind();
Label2.Text = "";
Label3.Text = Data(con).Count.ToString();
}
}
void Button1_Click(object sender, EventArgs e)
{
using (StudentDataContext con = new StudentDataContext())
{
Repeater1.DataSource = Data(con).Take(page);
Repeater1.DataBind();
Label2.Text = "";
Label3.Text = Data(con).Count.ToString();
}
}
public List<Users> Data(StudentDataContext con)
{
List<Users> ulist = new List<Users>();
ulist=con.Users.ToList();
if (name.Text.Trim() != "")
{
ulist = ulist.Where(w => w.Nikename.Contains(name.Text.Trim())).ToList();
}
if(Ra_sex.SelectedValue!="null")
{
ulist = ulist.Where(w => w.Sex == Convert.ToBoolean(Ra_sex.SelectedValue)).ToList();
}
ulist = ulist.Where(w => w.Nation.ToString() == dr_nation.SelectedValue).ToList();
Label3.Text = (Math.Ceiling(Convert.ToDecimal(ulist.Count) / page)).ToString();
con.Connection.Close();
return ulist;
}
组合查询后台
<asp:Label ID="Label1" runat="server" Text=""></asp:Label><br />
昵称:<asp:TextBox ID="name" runat="server"></asp:TextBox>
性别:<asp:RadioButtonList ID="Ra_sex" RepeatLayout="Flow" RepeatDirection="Horizontal" runat="server">
<asp:ListItem Text="全部" Value="null" Selected="True"></asp:ListItem>
<asp:ListItem Text="男" Value="true"></asp:ListItem>
<asp:ListItem Text="女" Value="false"></asp:ListItem>
</asp:RadioButtonList>
民族:<asp:DropDownList ID="dr_nation" runat="server"></asp:DropDownList>
<asp:Button ID="Button1" runat="server" Text="查询" />
<table style="width: 100%; background-color: blue; text-align: center">
<tr>
<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("Username") %></td>
<td><%#Eval("Password") %></td>
<td><%#Eval("Nikename") %></td>
<td><%#Eval("sexstr") %></td>
<td><%#Eval("birthdaystr") %></td>
<td><%#Eval("nationstr") %></td>
<td>
<div id="updatebtn" style="float: left;margin-left:10px">编辑</div>
<div id="deletebtn" style="float: left;margin-left:10px">删除</div>
</td>
</tr>
</ItemTemplate> </asp:Repeater> </table>
当前第[<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>]页
共[<asp:Label ID="Label3" runat="server" Text="Label"></asp:Label>]页
<asp:Button ID="bt_first" runat="server" Text="首页" />
<asp:Button ID="bt_up" runat="server" Text="上一页" />
<asp:Button ID="bt_nex" runat="server" Text="下一页" />
<asp:Button ID="bt_last" runat="server" Text="尾页" />
组合查询前台
12、集合交集
结构:集合1.Intersect(集合2).Intersect(集合3).ToList();
例:
public partial class Default2 : System.Web.UI.Page
{
List<test1> tlist1 = new List<test1>();
List<test1> tlist2 = new List<test1>();
List<test1> tlist3 = new List<test1>(); protected void Page_Load(object sender, EventArgs e)
{
tlist1.Add(new test1() { code = "", name = "张三" });
tlist1.Add(new test1() { code = "", name = "李四" });
tlist1.Add(new test1() { code = "", name = "王五" }); tlist2.Add(new test1() { code = "", name = "张三" });
tlist2.Add(new test1() { code = "", name = "李四" });
tlist2.Add(new test1() { code = "", name = "王五" }); tlist3.Add(new test1() { code = "", name = "张三" });
tlist3.Add(new test1() { code = "", name = "李四" });
tlist3.Add(new test1() { code = "", name = "王五" }); List<test1> ttlist = tlist1.Intersect(tlist2).Intersect(tlist3).ToList(); }
} public class test1
{
public string code { get; set; }
public string name { get; set; }
}
集合交集
Linq(高级查询)的更多相关文章
- LinQ高级查询、组合查询、IQueryable集合类型
LinQ高级查询: 1.模糊查询(包含) Repeater1.DataSource = con.car.Where(r =>r.name.Contains(s)).ToList(); 2.开头 ...
- Linq高级查询,分页查询及查询分页结合
一.高级查询与分页查询 1.以...开头 StartsWith Repeater1.DataSource=con.Users.Where(r=>r.Nickname.StartsWith( ...
- LinQ 高级查询
高级查询 模糊查(包含):.Contains(name) 开头:.StartsWith(name) 结尾:.EndsWith(name) 个数:.Count() 最大值:Max(r => r.p ...
- 【2017-06-02】Linq高级查询,实现分页组合查询。
1.以XXX开头 2.以XXX结尾 3.模糊查询 4.求个数 5.求最大值 6.求最小值 7.求平均值 8.求和 9.升序 10.降序 11.分页 Skip()跳过多少条 Take()取多少条 12. ...
- LinQ高级查询
1.模糊查询 con.Users.Where(a =>a.UserName.Contains(name)).ToList(); //包含name con.Users.Where(a =>a ...
- Webform(Linq高级查、分页、组合查询)
一.linq高级查 1.模糊查(包含) 1 public List<User> Select(string name) 2 { 3 return con.User.Where(r => ...
- LinQ的查询操作
LinQ的高级查询:-------------------在car表格进行练习操作: 一.模糊查询:1.在后台代码:(Contains)List<car>list=con.car.wher ...
- 2017年12月14日 LinQ高级查&&Asp.net WebForm Asp.net MVC
LinQ的高级查询用法 开头:StartsWith()结尾:EndsWith()模糊:Contains() 个数:Count最大值:Max(r => r.price)最小值:Min(r => ...
- 动态创建Lambda表达式实现高级查询
需求简介 最近这几天做的东西总算是回归咱的老本行了,给投资管理项目做一个台账的东西,就是类似我们的报表.其 中有一个功能是一个高级查询的需求,在查询条件方面大概有7.8个查询条件.需求就是如果一个条件 ...
- ABP开发框架前后端开发系列---(13)高级查询功能及界面的处理
在一般的检索界面中,基于界面易用和美观方便的考虑,我们往往只提供一些常用的条件查询进行列表数据的查询,但是有时候一些业务表字段很多,一些不常见的条件可能在某些场景下也需要用到.因此我们在通用的查询条件 ...
随机推荐
- 唤醒实验(java
package sy;import java.util.Random; public class random { public static void main(String[] args) { / ...
- Visual Studio Code--开发大大们都在用的编辑器
老公推荐的炒鸡nb的编辑器...说让我看起来像个假大神(微笑脸) 如何用VSCode练习python呢,还有VSCode有哪些常用的功能和快捷键呢?我会持续更新中... 1. 先来换个喜欢的颜色主题吧 ...
- 自动化测试-18.selenium之bugFree代码注释
#encoding=utf-8 import xlrd,time,os from xlutils.copy import copy from selenium import webdriver def ...
- Js/如何操作div下面的span元素或者是img之类的标签元素
$("div[name='MatTypeName']").click(function (e) { $("div[name='MatTypeName']").e ...
- yuan的第二次随笔
第一题: 计算两数的和与差 设计思路: 1:看题目:主函数与函数声明,知道它要你干什么 2:理解与分析:在main中,定义两个实数a,b;要你求两数的和与差 3:解答:通过调用函数sum_diff,指 ...
- hdu4612 Warm up 缩点+树的直径
题意抽象后为:给定一个无向图 问添加一条边的情况下最少能有多少个桥. 桥的定义:删除该边后原图变为多个连通块. 数据规模:点数N(2<=N<=200000),边数M(1<=M< ...
- IDEA java编译中出现了Exception in thread “main" java.lang.UnsupportedClassVersionError
这个问题确实是由较高版本的JDK编译的java class文件试图在较低版本的JVM上运行产生的错误. 在idea中需要修改的有两区,四个地方 1. 修改项目编译器 Crtl+Shift+A 进入如下 ...
- Linux系统下用find命令查找最近修改过的文件
1.先进入指定目录,比如:cd /var/ftp/ss 2.输入指定命令,相关命令如下介绍: 最近24小时内修改过的文件 find ./ -mtime 0 前48~24小时修改过的文件 find ./ ...
- # 20175120 2018.3.10 《Java程序设计》第2周学习总结
## 教材学习内容总结第二章内容1.标识符第一个字符不能是数字字符不能是关键字和true\false\null2.8个基本数据类型boolean int byte short long float d ...
- Arcgis属性表出现乱码
解决方案一:导入符号化字体: 在C:\Windows\Fonts文件夹下放入.TTF格式的字体库(此时加入农村二调_0.TTF和TDT10142007.ttf),便可使符号化的乱码显示正常. 解决方案 ...