Linq无聊练习系列1--where练习
linq主要有3种,linq to sql,linq to XML,Linq to Object
linq to sql。
这里没有通过相应的类,生成相应的数据库中的表。没有用流行的编码优先。
只是为了自己的练习。
通过生成的linq 类,把数据库中的表,存储过程,视图等映射出来。其中数据上下文是链接实体类和数据库的桥梁,这是非常重要的。
现在开始Linq to sql之旅。数据库中的代码如下所示:
--查询数据库中是否含有数据库DB_Student,有则删除
if exists(select 1 from sys.sysdatabases where [name]='DB_Student')
drop database DB_Student
go
--创建学生是数据库
create database DB_Student
go
--查看是否存在学生表,有则删除
use DB_Student
if exists(select 1 from sys.sysobjects where [name]='T_Student')
drop table T_Student
go
--创建学生表
use DB_Student
create table T_Student
(
stuNumber varchar(8) not null,
stuName varchar(20) not null,
stuAge int not null,
stuSex char(2) not null
)
go
--添加主键约束
use DB_Student
alter table T_Student
add constraint PK_T_Student_stuNumber primary key(stuNumber)
go
--查看是否存在教师表,有则删除
use DB_Student
if exists(select 1 from sys.sysobjects where [name]='T_Teacher')
drop table T_Teacher
go
--创建教师表
use DB_Student
create table T_Teacher
(
teacherNumber varchar(6) not null,
teacherName varchar(20) not null
)
go
--为教师表创建主键约束
use DB_Student
alter table T_Teacher
add constraint PK_T_Teacher_teacherNumber primary key(teacherNumber)
go
--查看是否存在课程表,有则删除
use DB_Student
if exists(select 1 from sys.sysobjects where [name]='T_Cource')
drop table T_Cource
go
--创建课程表
use DB_Student
create table T_Cource
(
courceNumber varchar(4) not null,
courceName varchar(20) not null,
teacherNumber varchar(6) not null
)
go
--为课程表添加主键约束和外键约束
use DB_Student
alter table T_Cource
add constraint PK_T_Cource_courceNumber primary key(courceNumber),
constraint FK_T_Cource_T_Teacher_teacherNumber foreign key(teacherNumber) references T_Teacher(teacherNumber)
go
--查看是否存在成绩表,有则删除
use DB_Student
if exists(select 1 from sys.sysobjects where [name]='T_Score')
drop table T_Score
go
--创建成绩表
use DB_Student
create table T_Score
(
stuNumber varchar(8) not null,
courceNumber varchar(4) not null,
score float
)
go
--为成绩表添加主键约束和外键约束
use DB_Student
alter table T_Score
add constraint PK_T_Score_stuNumber_courceNumber primary key(stuNumber,courceNumber),
constraint FK_T_Score_T_Student_stuNumber foreign key(stuNumber) references T_Student(stuNumber),
constraint FK_T_Score_T_Cource_courceNumber foreign key(courceNumber) references T_Cource(courceNumber)
go
--为学生表插入数据
insert into T_Student
select '2091727','李阳','18','男' union
select '2091728','李芳','19','女' union
select '2091729','李丹','18','男' union
select '2091721','黄阳','17','女' union
select '2091722','黄渤','18','男' union
select '2091723','黄波','20','男' union
select '2091724','何洁','19','女' union
select '2091725','何丹','17','男' union
select '2091726','何宇','19','女'
go
--为教师表插入数据
insert into T_Teacher
select '01','李刚' union
select '02','李双江' union
select '03','邓楠'
go
--为课程表插入数据
insert into T_Cource
select '001','微机原理','01' union
select '002','西方音乐历史','02' union
select '003','会计学','03'
go
--为成绩表插入数据
insert into T_Score
select '2091721','001','92' union
select '2091721','002','59' union
select '2091721','003','81' union
select '2091722','001','58' union
select '2091722','002','66' union
select '2091722','003','83' union
select '2091723','001','82' union
select '2091723','002','64' union
select '2091723','003','71' union
select '2091724','001','77' union
select '2091724','002','53' union
select '2091724','003','56' union
select '2091725','001','55' union
select '2091725','002','57' union
select '2091725','003','71' union
select '2091726','001','90' union
select '2091726','002','88' union
select '2091726','003','82' union
select '2091727','001','57' union
select '2091727','002','83' union
select '2091727','003','59' union
select '2091728','001','54' union
select '2091728','002','93' union
select '2091728','003','48' union
select '2091729','001','61' union
select '2091729','002','58' union
select '2091729','003','93'
go
select *
from T_Cource
select *
from T_Score
select *
from T_Student
select *
from T_Teacher
通过数据库生成数据上下文开始在VS里编码:
public partial class Practice1 : System.Web.UI.Page
{
DB_StudentDataContext ctx = new DB_StudentDataContext();
protected void Page_Load(object sender, EventArgs e)
{
dataBind();
}
void dataBind()
{
//获取数据库中的T_Student表数据
var list = ctx.T_Student.ToList();
GridView1.DataSource = list;
GridView1.DataBind();
}
}
这就是后台代码,前台显示如下:
看只需要var list = ctx.T_Student.ToList();这样的一句代码,就能够绑定数据,和以前ADO.NET读取数据填充到dataset数据集相比省了很多代码,看是不是很方便。
开始where 练习
/**************where 练习*******************/
//获取数据库中的T_Student表数据
var list = ctx.T_Student.Where(s => s.stuName == "黄阳");
//或者
var list1 = from s in ctx.T_Student
where s.stuName == "黄阳"
select s;
//查询名字为"黄阳"且性别为女的同学
var list3 = ctx.T_Student.Where(s => (s.stuName == "黄阳")&&(s.stuSex=="女"));
var list4 = from s in ctx.T_Student
where s.stuName == "黄阳"
&& s.stuSex == "女"
select s;
var list5 = ctx.T_Student.Where(s => s.stuName == "黄阳").Where(t => t.stuSex == "女");
//上边三个都是一样的结果
//查询表中的第一条记录
var list6 = ctx.T_Student.First();
//查询名字为“黄阳”的第一条记录
var list7 = ctx.T_Student.First(s=>s.stuName=="黄阳");
Linq无聊练习系列1--where练习的更多相关文章
- Linq无聊练习系列8---开放式并发事务,null和 DateTime,string操作练习
/*********************开放式并发事务,null和 DateTime,string操作练习**********************************/ //所谓并发,就是 ...
- Linq无聊练习系列6--Any/All/Contains/Concat/Union/Intersect/Except/take/skip/SqlMethods操作练习
/*********************Any/All/Contains/Concat/Union/Intersect/Except/take/skip/SqlMethods操作练习******* ...
- Linq无聊练习系列7----Insert,delete,update,attach操作练习
/*********************Insert,delete,update,attach操作练习**********************************/ ...
- Linq无聊练习系列5--OrderBy ,Groupby练习
/**************OrderBy ,Groupby练习*******************/ //按学生的总分数按降序排列排序 ...
- Linq无聊练习系列4--join练习
/**************join 练习*******************/ //对于1对多关系 var list =from c in ctx.T ...
- Linq无聊练习系列3--聚合函数练习
/**************聚合函数 练习*******************/ //求学生的总数量 var list = ctx.T_Student. ...
- Linq无聊练习系列2--select/distinct练习
void dataBindByWhere() { /**************select/distinct 练习*******************/ //获 ...
- LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据
http://www.cnblogs.com/yukaizhao/archive/2010/05/13/linq_to_sql_1.html LINQ和 LINQ to SQL 都已经不是一个新事物了 ...
- LINQ之路系列文章导读
本系列文章将会分为3篇来进行阐述,如下: LINQ之路(1):LINQ基础 LINQ之路(2):LINQ to SQL本质 LINQ之路(3):LINQ扩展
随机推荐
- Python - 缩写(capwords) 和 创建转换表(maketrans) 详细说明
缩写(capwords) 和 创建转换表(maketrans) 详细说明 本文地址: http://blog.csdn.net/caroline_wendy/article/details/27051 ...
- MVC自定义配置
ASP.NET 5 入门 (2) – 自定义配置 ASP.NET 5 理解和入门 建立和开发ASP.NET 5 项目 初步理解ASP.NET5的配置 正如我的第一篇文章ASP.NET 5 (vNext ...
- shell 命名管道,进程间通信
命名管道基础 命名管道也被称为FIFO文件, 在文件系统中是可见的,并且跟其它文件一样可以读写! 命名管道特点: 当写进程向管道中写数据的时候,如果没有进程读取这些数据,写进程会堵塞 当读取管道中的数 ...
- poj 2828 Buy Tickets(树状数组 | 线段树)
题目链接:poj 2828 Buy Tickets 题目大意:给定N,表示有个人,给定每一个人站入的位置,以及这个人的权值,如今按队列的顺序输出每一个人的权值. 解题思路:第K大元素,非常巧妙,将人入 ...
- Qt5官方demo分析集29——Extending QML - Property Value Source Example
此系列的所有文章都可以在这里查看http://blog.csdn.net/cloud_castle/article/category/2123873 接上文Qt5官方demo解析集28--Extend ...
- 【百度地图API】让用户选择起点和终点的驾车导航
原文:[百度地图API]让用户选择起点和终点的驾车导航 摘要: 如果用户搜索“从机场到火车站”,使用驾车导航DrivingRoute会默认显示一条结果.但同一个城市可能有多个机场和火车站,那么,如何用 ...
- Monkey源码分析之事件源
上一篇文章<Monkey源码分析之运行流程>给出了monkey运行的整个流程,让我们有一个概貌,那么往后的文章我们会尝试进一步的阐述相关的一些知识点. 这里先把整个monkey类的结构图给 ...
- 出现Deprecated: Function ereg_replace() is deprecated in 的原因及解决方法
在 php5.3环境下运行oscommerce,常常会出现Deprecated: Function ereg() is deprecated in...和Deprecated: Function er ...
- WebStorm中Node.js项目配置教程(1)——创建项目
Node.js绝对是一个web开发的热点话题,作为web神器的WebStorm也是开发Node.js的佼佼者. 接下来就Node.js项目在WebStorm的配置操作就行详细的讲解,首先是创建项目.两 ...
- Ping域名惊现65.49.2.178
--- 昨天新建的博,早晨起来进去看看,发现无法访问.这… 排错开始,ping域名出现如上图所示结果,请求超时…哪里的问题呢 有时常识是害人的,想起了前两月群里也有人说本地无法访问自己网站,别人能访问 ...