1. from in子句:指定查詢操作的數據源和變量範圍
//創建LinqDB數據庫上下文實例
DataClasses1DataContext db = new DataClasses1DataContext();
//使用lINQ查詢表達式查詢數據
var query = from stu in db.student
join m in db.mark on stu.sid equals m.sid
select new { 姓名=stu.sname,科目=m.subject,成績=m.score };
//設置數據源並綁定數據
GridView1.DataSource = query;
GridView1.DataBind();
2. select子句:指定查詢結果的類型和表現形式
3. where子句:刪選元素的邏輯條件,一般由邏輯運算符組成
4. groupby子句:對查詢進行分組
DataClasses1DataContext db = new DataClasses1DataContext();
var query = from m in db.mark
group m by m.mid into g
orderby g.Key
select new { g.Key, 成績 = g.Max(c => c.score) };
GridView1.DataSource = query;
GridView1.DataBind();
5. orderby子句:對查詢結果排序,可以爲升序或降序
降序:
DataClasses1DataContext db = new DataClasses1DataContext();
var q = db.mark
.OrderByDescending(P => P.score )
.ToList();
GridView1.DataSource = q;
GridView1.DataBind();
或者:升序:
//創建LinqDB數據庫上下文實例
DataClasses1DataContext db = new DataClasses1DataContext();
//使用lINQ查詢表達式查詢數據
var query = from m in db.mark
join stu in db.student on m.sid equals stu.sid
orderby m.score ascending
select new { 姓名 =stu.sname, 科目 = m.subject, 成績 = m.score };
//設置數據源並綁定數據
GridView1.DataSource = query;
GridView1.DataBind();
或者
DataClasses1DataContext db = new DataClasses1DataContext();
var q = db.mark
.OrderBy(P => P.score )
.ToList();
GridView1.DataSource = q;
GridView1.DataBind();
6. join子句:連接多個查詢操作的數據源
//創建LinqDB數據庫上下文實例
DataClasses1DataContext db = new DataClasses1DataContext();
//使用lINQ查詢表達式查詢數據
var query = from stu in db.student
join m in db.mark on stu.sid equals m.sid
select new { 姓名=stu.sname,科目=m.subject,成績=m.score };
//設置數據源並綁定數據
GridView1.DataSource = query;
GridView1.DataBind();
7. let子句:引入用於儲存查詢表達式中的子表達式結果的範圍變量
DataClasses1DataContext db = new DataClasses1DataContext();
var q = from m in db.mark
let n = m.score
where n >90
select m ;
GridView1.DataSource = q;
GridView1.DataBind();
8. into子句:提供一個臨時標誌符,充當對group,select,join,子句的結果
用於select:
DataClasses1DataContext db = new DataClasses1DataContext();
var q = from stu in db.student
where stu.sid > 2
select new { 學號 = stu.sid, 姓名 = stu.sname }
into s
orderby s.學號
select s;
GridView1.DataSource = q;
GridView1.DataBind();
附數據庫代碼:
use master
go
if exists(select * from sys.databases where name='Student')
drop database Student
create database Student
go
use Student
if exists(select * from sys.tables where name='student')
drop database student
create table student
(
sid int primary key identity(1,1) ,
sname varchar(10) not null
)
if exists(select * from sys.tables where name='mark')
drop database mark
create table mark
(
mid int primary key identity(1,1) ,
subject varchar(10) not null,
score int not null,
sid int references student(sid)
)
insert into student values ('林彥俊')
insert into student values ('靈超')
insert into student values ('尤長靖')
insert into student values ('木子洋')
insert into mark values ('html',100,1)
insert into mark values ('sql',90,1)
insert into mark values ('html',10,2)
insert into mark values ('sql',60,2)
insert into mark values ('html',99,3)
insert into mark values ('sql',91,4)
select *from student
select * from mark
數據庫運行結果: