linQ 查询

1、多条件查询:
并且 &&
或者 ||

var list = con.car.Where(r => r.code == "c014" || r.oil == 8.2m);

2、模糊查询
1.模糊
var list = con.car.Where(r => r.name.Contains("AT"));
2.开头
var list = con.car.Where(r => r.name.StartsWith("皇冠"));
3.结尾
var list = con.car.Where(r => r.name.EndsWith("版"));

3、统计查询
1.总个数
//var count = con.car.Count();
2.最大值
//var Max = con.car.Max(r => r.price);
3.最小值
//var Min = con.car.Min(r => r.price);
4.平均值
//var avg = con.car.Average(r => r.price);

4、分页查询
跳过,获取
int count = 5;
int pagecount = 1;

var list = con.car.Skip(pagecount * count).Take(count);

5、排序查询
升序
//var list = con.car.OrderBy(r => r.price);
降序
//var list = con.car.OrderByDescending(r => r.price);

去重:
var aaa = con.car.Select(r => r.oil).Distinct();

6、外键显示
return this.brand1.brand_name;

7、组合查询
交集
var list = list1.Intersect(list2).Intersect(list3);
-------------------------------------------------------------
var list1 = con.car.AsQueryable();
var list2 = con.car.AsQueryable();
var list3 = con.car.AsQueryable();

if (TextBox1.Text.Trim().Length > 0)
{
list1 = list1.Where(r => r.name.Contains(TextBox1.Text.Trim()));
}
if (TextBox2.Text.Trim().Length > 0)
{
list2 = list2.Where(r => r.brand1.brand_name.Contains(TextBox2.Text.Trim()));
}
if (TextBox3.Text.Trim().Length > 0)
{
list3 = list3.Where(r => r.oil == Convert.ToDecimal(TextBox3.Text.Trim()));
}

var list = list1.Intersect(list2).Intersect(list3);

Repeater1.DataSource = list;
Repeater1.DataBind();

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default1.aspx.cs" Inherits="Default1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <style type="text/css">
        table
        {
            width:100%;
            background-color:blue;
            font-size:20px;
            font-family:微软雅黑;
        }
        #tr_head
        {
            color:white;
        }
        .tr_main
        {
            background-color:white;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        名称:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        油耗:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        价格:<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="查询" />
                <br />
        <asp:Repeater ID="Repeater1" runat="server">
            <HeaderTemplate>
                <table>
                    <tr id="tr_head">
                        <td>编号</td>
                        <td>姓名</td>
                        <td>系别</td>
                        <td>时间</td>
                        <td>油耗</td>
                        <td>排量</td>
                        <td>马力</td>
                        <td>价格</td>
                    </tr>
            </HeaderTemplate>
            <ItemTemplate>
                <tr class="tr_main">
                    <td><%#Eval("code") %></td>
                     <td><%#Eval("name") %></td>
                     <td><%#Eval("brand") %></td>
                    <td><%#Eval("time") %></td>
                     <td><%#Eval("oil") %></td>
                     <td><%#Eval("exhaust") %></td>
                     <td><%#Eval("powers") %></td>
                     <td><%#Eval("price") %></td>
                </tr>
            </ItemTemplate>
            <FooterTemplate>
                </table>
            </FooterTemplate>
        </asp:Repeater>
    </form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default1 : System.Web.UI.Page
{
    mydbDataContext conn = new mydbDataContext();
    protected void Page_Load(object sender, EventArgs e)
    {
        Button1.Click += Button1_Click;
    }

    void Button1_Click(object sender, EventArgs e)
    {
        //查询全部
       //var list = conn.Car;
        //并且
        //var list = conn.Car.Where(r=>r.Oil==8.7m&&r.Powers==130);
        //或者
       // var list = conn.Car.Where(r => r.Oil == 8.7m || r.Powers == 130);
        //模糊查询
        //var list = conn.Car.Where(r=>r.Name.Contains("舒适"));
        //已什么开头
        //var list = conn.Car.Where(r => r.Name.StartsWith("宝马"));
        //已什么结尾
        //var list = conn.Car.Where(r => r.Name.EndsWith("型"));
        //个数,数量
        //var aa = conn.Car.Count();
        //最大
      //var aaaa = conn.Car.Max(r=>r.Price);
        //最小
        //var bbb = conn.Car.Min(r=>r.Price);
        //平均值
       // var ccc = conn.Car.Average(r=>r.Price);
        //分页查询
        //跳过 取出
        //var count = 5;
        //var pagecount = 2;
        //var list = conn.Car.Skip(count * pagecount).Take(count);
        //排序
        //升序
        //var list = conn.Car.OrderBy(r=>r.Price);
        //降序
       // var list = conn.Car.OrderByDescending(r=>r.Price);
        //去重查询
        //var ss = conn.Car.Select(r => r.Oil).Distinct();
        //组合查询
        var list1 = conn.Car.AsQueryable();
        var list2 = conn.Car.AsQueryable();
        var list3 = conn.Car.AsQueryable();
        if(TextBox1.Text.Length>0)
        {
            list1 = conn.Car.Where(r=>r.Name.Contains(TextBox1.Text));
        }
        if (TextBox2.Text.Length > 0)
        {
            list1 = conn.Car.Where(r => r.Oil==Convert.ToDecimal(TextBox2.Text));
        }
        if (TextBox1.Text.Length > 0)
        {
            list1 = conn.Car.Where(r => r.Price==Convert.ToDecimal(TextBox3.Text));
        }

        var list = list1.Intersect(list2).Intersect(list3);

        Repeater1.DataSource = list;
        Repeater1.DataBind();
    }
}

时间: 2024-11-05 15:56:50

linQ 查询的相关文章

NHibernate系列文章二十四:NHibernate查询之Linq查询(附程序下载)

摘要 NHibernate从3.0开始支持Linq查询.写Linq to NHibernate查询就跟写.net linq代码一样,非常灵活,可以很容易实现复杂的查询.这篇文章使用Linq to NHibernate重写之前所有的查询. 本篇文章的代码可以到NHibernate查询下载 1.创建IQueryable对象,返回所有Customer对象信息 1 public IList<Customer> QueryAllLinq() 2 { 3 return Session.Query<C

编写高质量代码改善C#程序的157个建议——建议26:使用匿名类型存储LINQ查询结果

建议26:使用匿名类型存储LINQ查询结果 从.NET3.0开始,C#开始支持一个新特性:匿名类型.匿名类型有var.赋值运算符和一个非空初始值(或以new开头的初始化项)组成.匿名类型有如下基本特性: 即支持简单类型也指出复杂类型.简单类型必须是一个非空初始值,复杂类型则是一个以new开头的初始化项. 匿名类型的属性是只读的,没有属性设置器,它一旦被初始化就不可更改. 如果两个匿名类型的属性值相同,那么就认为这两个匿名类型相等. 匿名类型可以再循环中用作初始化器. 匿名类型支持智能感知. 匿名

DataTable/Array Linq查询

DataTable Linq查询 1.查询DataRow 1 IEnumerable<DataRow> q1 = from r in dt.AsEnumerable() 2 where r.Field<int>("ID") % 2 == 0 3 select r; 2.查询某个字段 1 var query2 = 2 from pl in dt.AsEnumerable( ) 3 select pl.Field<string>("Name&q

LINQ查询知识总结:案例分

案例:汽车表car,系列表brand,厂商表productor private MyCarDataContext  _Context = new MyCarDataContext(); (1)查询全部汽车信息 var list = _Context.Car; LINQ语法:var list = from p in _Context.Car select p; (2)简单筛选行:查询车系代号是 b002的所有车 关键点:"==" var list = _Context.Car.Where

C#语法之Linq查询基础二

上篇C#语法之Linq查询基础一基本把Linq介绍了一下,这篇主要是列举下它的几个常见用法. 在用之前先准备些数据,新建了两个类Student.Score,并通过静态方法提供数据. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LinqDemo { public class Student {

Linq学习之旅——LINQ查询表达式

1. 概述 2. from子句 3. where子句 4. select子句 5. group子句 6. into子句 7. 排序子句 8. let子句 9. join子句 10. 小结 1. 概述 LINQ的全称是Language Integrated Query,中文译成“语言集成查询”.LINQ作为一种查询技术,首先要解决数据源的封装,大致使用了三大组件来实现这个封装,分别是LINQ to Object.LINQ to ADO.NET.LINQ to XML.它们和.NET语言的关系如下:

linq查询一个字段的总和

(from s in dc.StockInItem   //所要查询单表 join si in dc.StockIn           //联合的表 on s.StockInID equals si.StockInID     //两个表联合的相同条件 where (s.ColorsID == int.Parse(colorID) && s.SizesID == int.Parse(sizeID) && s.ProductID == int.Parse(ProtectID

Silverlight项目笔记1:UI控件与布局、MVVM、数据绑定、await/async、Linq查询、WCF RIA Services、序列化、委托与事件

最近从技术支持转到开发岗,做Silverlight部分的开发,用的Prism+MVVM,框架由同事搭好,目前做的主要是功能实现,用到了一些东西,侧重于如何使用,总结如下:   1.UI控件与布局     2.MVVM     3.数据绑定     4.await/async     5.Linq查询     6.WCF RIA Services     7.序列化     8.委托与事件 1.UI控件与布局 常用的主要是Grid.StackPanel.Border,其中最常用的的是Grid,是一

C#LINQ 查询【学习笔记】

[LINQ 查询] 2016-10-24 事例: 先定义两个类Master和KongFu,然后在这两个类中定义变量 1 class Master 2 { 3 publicintId{ get;set;} 4 publicstringName{ get;set;} 5 publicintAge{ get;set;} 6 publicstringKongfu{ get;set;} 7 publicstringMenPai{ get;set;} 8 publicintLevel{ get;set;}

编写高质量代码改善C#程序的157个建议——建议31:在LINQ查询中避免不必要的迭代

建议31:在LINQ查询中避免不必要的迭代 无论是SQL查询还是LINQ查询,搜索到结果立刻返回总比搜索完所有的结果再将结果返回的效率要高. 示例代码: class MyList : IEnumerable<Person> { //为了演示需要,模拟了一个元素集合 List<Person> list = new List<Person>() { new Person(){ Name = "Mike", Age = 20 }, new Person()