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扩展
随机推荐
- Weka初步
从前年開始使用weka最数据挖掘方面的研究,到如今有一年半的时间了.看到我们同组的兄弟写了关于weka方面的总结.我也想整理一下.由于网上的资料实在是太少.记得刚接手的时候,真是硬着头皮看代码.只是到 ...
- 十天学Linux内核之第七天---电源开和关时都发生了什么
原文:十天学Linux内核之第七天---电源开和关时都发生了什么 说实话感觉自己快写不下去了,其一是有些勉强跟不上来,其二是感觉自己越写越差,刚开始可能是新鲜感以及很多读者的鼓励,现在就是想快点完成自 ...
- C++ Primer 学习笔记_56_ 类和数据抽象 --消息处理演示示例
拷贝控制 --消息处理演示样例 说明: 有些类为了做一些工作须要对复制进行控制. 为了给出这种样例,我们将概略定义两个类,这两个类可用于邮件处理应用程序.Message类和 Folder类分别表示电子 ...
- ASP.NET WebAPI从入门
在新出的MVC4中,增加了WebAPI,用于提供REST风格的WebService,新生成的WebAPI项目和典型的MVC项目一样,包含主要的Models.Views.Controllers等文件夹和 ...
- ArcPad 10 的安装和部署
ArcPad它被安装在一个手持装置或业内外的移动终端ArcGIS产品,那ArcPad这是Esri软件产品,哦,不是硬件. 虽然优于ArcGIS Desktop功能复杂的乐趣,是对于野外作业.数据採集等 ...
- 转载Worktile 技术架构概要
Worktile 技术架构概要 其实早就该写这篇博客了,一直说忙于工作没有时间,其实时间挤挤总会有的,可能就是因为懒吧!从2013年11月一直拖到现在,今天就简单谈谈 Worktile 的技术架构吧 ...
- [CLR via C#]1.2 将托管模块合并成程序集
原文:[CLR via C#]1.2 将托管模块合并成程序集 1.CLR是不和托管模块一起工作的,CLR是和程序集一起工作的. 2. 程序集是一个或多个托管模块/资源文件的逻辑性分组. 3. 程序 ...
- [CLR via C#]5.1 基元类型
原文:[CLR via C#]5.1 基元类型 某些数据类在开发中非常常用,以至于许多编译器允许代码已简化的语法来操作它们.例如可以使用以下语法来分配一个整数: System.Int32 a = ne ...
- Linux 时区变化
1.查看当前的时区 date -R 2.改动当前时区 tzselect 之后会出来一个选项菜单,选择你想要的时区就OK了 3.替换系统时区文件 cp /usr/share/zoneinfo/XXX/Y ...
- easyui datagrid datagrid-filter bug
问题描述:空字符串.数字过滤 过滤异常 修改js源码: $.fn.datagrid.defaults.operators = { nofilter: { text: 'No Filter' }, co ...