ASP.NET网站开发——LINQ TO SQL 查询数据库数据(八大子句)

news/2024/5/19 10:01:49/文章来源:https://blog.csdn.net/zzllyy119977/article/details/79806958

LINQ查询字句概述

        1.查询(Query)是一组指令,这些指令可以从一个或多个给定的数据源中检索数据,并指定检索结果的数据类型和表现形式。

        2.查询表达式是一种用查询语法表示的表达式,由一组用类似于SQL的生明性语法编写的·字句组成。

        3.每个子句可以包含一个或多个C#表达式,而这些表达式本身又可能是查询表达式或包含查询表达式。

        4.查询表达式和其他表达式一样,可以用在C#表达式有效的任何上下文中。

常用字句

        LINQ查询表达式包含8句常用字句像子句:from丶where丶select字句等

           子句                                                                                 说明

from..in子句指定查询操作的数据源和变量范围
where子句筛选元素的逻辑条件,一般由逻辑运算符(逻辑“与  &&”丶逻辑“或  ||”组成)
select子句指定查询结果的类型和表现形式
order...by子句对查询结果进行排序,可以为“升序”或“降序”
group...by子句对查询结果进行分组
into子句提供一个临时标示符,充当join丶group丶select子句的结果
join子句连接多个查询操作的数据源 
let子句引入用于储存查询表达式的子表达式结果的范围变量
字句说明:LINQ查询表达式必须以from子句开头,并且以select或group子句结束

              在第一个from子句和最后一个select或group子句之间,查询表达式可以包含一个或多个where丶order by丶group丶join丶let子句甚至from子句

                另外,join和group子句还可以使用into子句指定临时标识符号  

from...in  子句

        LINQ查询表达式必须以from子句开头。如果该查询还包含子查询,那么子查询表达式也要以form开头。from子句指定查询操作的数据源和变量范围。其中,数据源不但包括查询本身的数据源还包括子查询数据源。在LINQ查询中第一步通常是指定数据源。

  1. select * from Stuinfo where name in(select name from stu where ID=1)
  2. select * from Stuinfo where name not in(select name from stu where ID=1)

     in    等值连接,用来查找多表相同字段数据

not in    不等值连接,用来查找不存在的数据

where  子句

        一个查询表达式可不包含where子句,也可包含一个或多个where子句。一个where子句可以包含一个或多个布尔条件类型表达式。实际上就是用户在筛选器中加入条件筛选排除哪些内容

        这些运算符可在where子句中使用(">",">=","<","<=","=","<>"或"!=","!>","!<")

var queryLondonCustomers = from cust in customerswhere cust.City == "London"select cust;

select  子句

        用于查询用户数据    当结果被储存在一个结果表中称为结果表

常见select语法为

select 列名  from  表名
select  *  from  表名
其中 *代表全部表

order...by  子句

        可以指定多个键,以便执行一个或多个次要排序操作。排序是由针对元素类型的默认比较器执行的。默认排序顺序为升序。

group...by  子句        

class OrderbySample1
{
static void Main()
{
// Create a delicious data source.
string[] fruits = { "cherry", "apple", "blueberry" };
// Query for ascending sort.
IEnumerable<string> sortAscendingQuery =
from fruit in fruits
orderby fruit //"ascending" is default
select fruit;
// Query for descending sort.
IEnumerable<string> sortDescendingQuery =
from w in fruits
orderby w descending
select w;
// Execute the query.
Console.WriteLine("Ascending:");
foreach (string s in sortAscendingQuery)
{
Console.WriteLine(s);
}
// Execute the query.
Console.WriteLine(Environment.NewLine + "Descending:");
foreach (string s in sortDescendingQuery)
{
Console.WriteLine(s);
}
// Keep the console window open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
/* Output:
Ascending:
apple
blueberry
cherry
Descending:
cherry
blueberry
apple
*/

group...by子句

        通过一定规则将自个数据集划分为若干小区域,然后针对若干小区域进行处理

例:

  1. SELECT 列名1,dbo.aggregate_function(列名2)
  2. FROM table_name
  3. GROUP BY 列名1,列名2

into  子句

        引用组操作的结果,可以使用 into 关键字来创建可进一步查询的标识符。 下面的查询只返回那些包含两个以上的客户的组

// custQuery is an IEnumerable<IGrouping<string, Customer>>
var custQuery =from cust in customers
<span style="color:#3366ff;">group</span> cust <span style="color:#3366ff;">by</span> cust.City <span style="color:#3366ff;">into </span>custGroup
where custGroup.Count() > 2
orderby custGroup.Key
select custGroup;

join  子句

        使用 join 子句可以将来自不同源序列并且在对象模型中没有直接关系的元素相关联。 唯一的要求是每个源中的元素需要共享某个可以进行比较以判断是否相等的值。例如,食品经销商可能具有某种产品的供应商列表以及买主列表。例如,可以使用 join 子句创建该产品同一指定地区供应商和买主的列表

        join可实现以下三种联接关系:

                1.内部链接  要求连接的数据关系必须同时满足被联接的两个数据源。和SQL中的inner join子句相似

                2.分组链接  包含into子句中的join子句

                3.左外部链接  与SQL中的left  join子句比较相似,它将返回第一个集合的每一个元素,而无论该元素在第二个集合中是否有相关元素

下面三类代码分别是:内部链接丶分组链接丶左外部链接

var innerJoinQuery =
from category in categories
<span style="color:#3366ff;">join</span> prod in products on category.ID equals prod.CategoryID
select new { ProductName = prod.Name, Category = category.Name }; //produces flat sequence
var innerJoinQuery =
from category in categories
<span style="color:#3366ff;">join</span> prod in products on category.ID equals prod.CategoryID
select new { ProductName = prod.Name, Category = category.Name }; //produces flat sequence
var leftOuterJoinQuery =
from category in categories
join prod in products on category.ID equals prod.CategoryID into prodGroup
from item in prodGroup.DefaultIfEmpty(new Product{Name = String.Empty, CategoryID = 0})
select new { CatName = category.Name, ProdName = item.Name };

let  子句

        let子句指定的范围变量的值只能通过初始化操作进行赋值,范围变量的值一旦初始化,将不再被改变。

class LetSample1
{
static void Main()
{
string[] strings =
{
"A penny saved is a penny earned.",
"The early bird catches the worm.",
"The pen is mightier than the sword."
};
// Split the sentence into an array of words
// and select those whose first letter is a vowel.
var earlyBirdQuery =
from sentence in strings
let words = sentence.Split(' ')
from word in words
let w = word.ToLower()
where w[0] == 'a' || w[0] == 'e'
|| w[0] == 'i' || w[0] == 'o'
|| w[0] == 'u'
select word;
// Execute the query.
foreach (var v in earlyBirdQuery)
{
Console.WriteLine("\"{0}\" starts with a vowel", v);
}
// Keep the console window open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
/* Output:
"A" starts with a vowel
"is" starts with a vowel
"a" starts with a vowel
"earned." starts with a vowel
"early" starts with a vowel
"is" starts with a vowel
*/




                                                                                微笑如有不足,请批评指正,谢谢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_895562.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET网站开发——成员资格(安全模式)

安全的必要性 构造特殊的链接地址&#xff0c;导致文件内的数据泄露 数据库泄露 安全防范的首要范畴&#xff1a;所有的HTTP访问都要经过IIS&#xff0c;所以限制IIS的安全性是关键 asp.net的安全模式 简介&#xff1a;根据所请求的资源类型&#xff0c;IIS能够自己处理请求&…

ASP.NET网站开发——LINQ TO SQL类

LINQ TO SQL是LINQ中最重要的一个组件&#xff0c;为NET. Framework3.5所支持&#xff0c;它可以为关系数据库提供一个对象模型&#xff0c;并在该对象模型基础上实现对数据的查询丶添加丶修改丶删除等功能&#xff0c;即LINQ TO SQL提供了用于将关系数据作为对象管理的运行时…

React + Vite 实现一个音乐网站(项目搭建篇)

最近找工作屡屡碰壁&#xff0c;突然不想努力了… 最初想搭建一个个人博客&#xff0c;技术栈确定为React TS Vite&#xff0c;一方面是为了学习新知识&#xff0c;一方面是实在闲着。但是由于之前做过个人博客所有觉得个人博客可能没啥意思。主要是设计也是一大麻烦&#x…

React + Vite 实现一个音乐网站(menu篇)

众所周知&#xff0c;每个网站都有菜单… 1.建立component文件夹 内部创建menu文件夹&#xff0c;文件夹内创建index.jsx和index.scss 目录结构如下 2.代码的编写 1.解决思路&#xff1a;首先我们肯定是要搭建页面的&#xff0c;我将meun分为两部分一步份为logo&#xff0…

React + Vite 实现一个音乐网站(动画篇)

为了让网站能够炫酷一点&#xff0c;必然的动画是不可或缺的 现在实现一个类似canvas流动背景的功能&#xff0c;最初设计是遍历多个小球在页面上&#xff0c;然后小球在dom节点内移动变换。后决定加入小球一起变换&#xff0c;让小球跟随大球移动&#xff0c;同时小球也能有自…

React + Vite 实现一个音乐网站(aplayer音乐播放器 )

众所周知&#xff0c;音乐网站需要能播放音乐 1.页面搭建 我们需要搭建这样一个部分 那么秉承一分为二的原则&#xff0c;左边音乐列表&#xff0c;右边显示cd图片。理所应当我们得让cd运动起来。 components里面建立文件夹Music&#xff0c;文件夹内新建index.jsx和index.scs…

快速把网站变成纯灰度显示

直接上代码了&#xff0c;在Header中添加这句话&#xff1a; <style>html {filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale1);-webkit-filter: grayscale(100%);}</style> 上面的应该是对应IE的&#xff0c;Mac版Chrome&#xff0c;没有进行实测…

看李俊超老师SEO视频教程 全程笔记

SEO教程详解 一次偶然的机会发现了百度文库新推出的公开课栏目&#xff0c;并在其中发现了的李俊超老师的SEO视频教程&#xff0c;从中学到了很多知识。并在观看的过程中做了如下笔记&#xff1a; 核心思想及工作流程 1&#xff0e;内容为王&#xff0c;外链为帝&#xff0…

网站在微信中提示从浏览器打开

做微信营销活动或者APK下载推广时候&#xff0c;域名被经常被封&#xff0c;做到微信中正常使用呢&#xff1f;这就要借助一些工具来实现有效的操作。 由于微信的限制&#xff0c;通常会出现下面几种情况 1、应用文件在内置浏览器中下载全部被屏蔽掉&#xff0c;造成很多人用…

插件效果【网站开发必备】——12款响应式 Lightbox(灯箱)效果插件

文章结束给大家来个程序员笑话&#xff1a;[M] 灯箱效果&#xff08;Lightbox&#xff09;是网站中最用常的效果之一&#xff0c;用于现实相似模态对话框的效果。网络上各种 Lightbox 插件满目琳琅&#xff0c;随着应响式计划&#xff08;Respnsive Design&#xff09;的开展&a…

插件网站Formula.js – 实现 MS Excel 公式的 JavaScript 工具库

这两天一直在研究插件网站之类的问题,上午正好有机会和大家讨论一下. Formula.js 是一个实现 Microsoft Excel 和 Google Spreadsheets 等类似的电子表格应用程序拥有的强大公式的功能库&#xff0c;带给 Web 开辟人员最经常使用的日期/时光&#xff0c;文本&#xff0c;逻辑&a…

插件网站zoom.js:一款效果很独特的页面内容缩放插件

最近研究插件网站&#xff0c;稍微总结一下&#xff0c;以后继续补充&#xff1a; zoom.js 提供的 JavaScript API 让网站开发人员能够给页面内容添加缩放效果。在页面上点击&#xff0c;目标处的内容会放大&#xff0c;再次点击或者按 ESC 键即可恢复原始巨细。zoom.js 提供了…

linux服务器搭建网站

搭建网站环境用的是lnmp即&#xff1a;linuxnginxmsqlphp 1 命令行输入 wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp 出现选择项&#xff0c;如图&#xff…

java web 网站头像上传处理 (springmvc +bootstrap+cropper)

制作头像上传。请根据您的实际需求&#xff0c;修改代码&#xff0c;不完全正确&#xff0c;仅供参考&#xff01; 前端页面设计使用bootstrap &#xff0c;头像预览和剪裁工具使用cropper 后台使用springmvc。 现在来看前端的页面设计 前端页面设计&#xff0c;自然需要boo…

大型网站架构演变和知识体系

大型网站架构演变和知识体系 之前也有一些介绍大型网站架构演变的文章&#xff0c;例如LiveJournal的、ebay的&#xff0c;都是非常值得参考的&#xff0c;不过感觉他们讲的更多的是每次演变的结果&#xff0c;而没有很详细的讲为什么需要做这样的演变&#xff0c;再加上近来感…

kali系统网站部署笔记

网站放在 其他位置----计算机------var-----www----html 首先启动nginx service nginx start 然后访问127.0.0.1 就会看到Apache正在工作 启动mysql数据库 service mysql start 接着用 mysql -u root -p 连接mysql 用户名&#xff1a;root 密码&#xff1a;123456 数据库操作命…

720vr全景网站平台系统 vr全景图制作系统

新版会员中心 模板展示 4D环物模型 2021-7.10 重磅更新&#xff1a; 支持mysql5.7 支持https 2021-8.10 更新支持邮箱注册会员 2021年升级4D功能 更新记录2020年12月修复720度环物4d功能&#xff0c;上传顺畅2021年1月修复720环物浏览放大等功能 720度环物演示http://cdn.7…

Android学习网站推荐

收集了一些主流的android学习网站&#xff0c;在这里分享给大家 1、http://www.android-study.com/ 2、http://www.eoeandroid.com/ 国内最大的Android开发社区&#xff0c;本人使用频率最高的&#xff0c;里面分享了很多源代码&#xff0c;对入门者学习很有帮助 3、http://w…

PhantomJS在Windows7下实现网站自动下载截图

1. phantomjs介绍 基于Javascript驱动的命令行webkit引擎&#xff0c;轻量级&#xff0c;安装简单&#xff0c;开发快速&#xff0c;渲染速度较快&#xff0c;无界面的webkit浏览器。 phontomjs跟一般浏览器一样可以加载网页&#xff0c;但不同的是它不会把网页显示出来&#x…

最新在线客服系统php代码微信软件公众号小程序app二维码聊天网站源码

最新在线客服系统php代码微信软件公众号小程序app二维码聊天网站源码 管理界面 独家长期更新日志(欢迎反馈BUG) 1、添加手机端前后台声音提示 2、添加后台客户管理显示在线离线 3、添加清空当前对话列表功能 4、优化手机端图标为高清 5、 修复用户端截图发送客服后台收…