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练习的更多相关文章

  1. Linq无聊练习系列8---开放式并发事务,null和 DateTime,string操作练习

    /*********************开放式并发事务,null和 DateTime,string操作练习**********************************/ //所谓并发,就是 ...

  2. Linq无聊练习系列6--Any/All/Contains/Concat/Union/Intersect/Except/take/skip/SqlMethods操作练习

    /*********************Any/All/Contains/Concat/Union/Intersect/Except/take/skip/SqlMethods操作练习******* ...

  3. Linq无聊练习系列7----Insert,delete,update,attach操作练习

    /*********************Insert,delete,update,attach操作练习**********************************/            ...

  4. Linq无聊练习系列5--OrderBy ,Groupby练习

    /**************OrderBy ,Groupby练习*******************/                       //按学生的总分数按降序排列排序         ...

  5. Linq无聊练习系列4--join练习

    /**************join 练习*******************/            //对于1对多关系            var list =from c in ctx.T ...

  6. Linq无聊练习系列3--聚合函数练习

    /**************聚合函数 练习*******************/            //求学生的总数量            var list = ctx.T_Student. ...

  7. Linq无聊练习系列2--select/distinct练习

    void dataBindByWhere()        { /**************select/distinct 练习*******************/            //获 ...

  8. LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据

    http://www.cnblogs.com/yukaizhao/archive/2010/05/13/linq_to_sql_1.html LINQ和 LINQ to SQL 都已经不是一个新事物了 ...

  9. LINQ之路系列文章导读

    本系列文章将会分为3篇来进行阐述,如下: LINQ之路(1):LINQ基础 LINQ之路(2):LINQ to SQL本质 LINQ之路(3):LINQ扩展

随机推荐

  1. Python开发一个csv比较功能相关知识点汇总及demo

    Python 2.7 csv.reader(csvfile, dialect='excel', **fmtparams)的一个坑:csvfile被csv.reader生成的iterator,在遍历每二 ...

  2. tortoisegit使用密钥连接服务器(转)

    目录 [hide] 1 使用putty的密钥 1.1 生成putty密钥 2 在服务器上添加openssh公钥 3 在tortoisegit上使用密钥 4 putty密钥与openssh密钥转化 5  ...

  3. 平原绫香 Hirahara Ayaka-Jupiter

    我第一次听到平原绫香(Hirahara Ayaka)久石让在武道馆演唱会.她的歌声真的很震惊! 声音是如此的纯净,演唱会是如此的优雅.她着迷,只是如此美丽. 然后我去检查她的信息.发现Jupiter. ...

  4. NPOI实现Excel导入导出

    NPOI实现Excel的导入导出,踩坑若干. Cyan是博主[Soar360]自2014年以来开始编写整理的工具组件,用于解决现实工作中常用且与业务逻辑无关的问题. 什么是NPOI? NPOI 是 P ...

  5. C#二维码生成

    C#二维码生成,这里使用开源的ThoughtWorks.QRCode.dll库. 1.下载ThoughtWorks.QRCode.dll库文件,并引用到项目中. 2.创建QRCodeHandler.c ...

  6. .NET 各种问题汇总

    1.i++ 与++i的区别 using System; class TestApp { public static void Main() { int i = 8; int count = ++i;/ ...

  7. Quartz使用-入门使用(java定时任务实现)

    注:这里使用的是Quartz1.6.5版本号(包:quartz-1.6.5.jar) //測试main函数 //QuartzTest.java package quartzPackage; impor ...

  8. SqlDataReader的关闭问题

    原文:SqlDataReader的关闭问题 昨天一个朋友使用Repeater绑定数据源时,老是出现"阅读器关闭时尝试调用 FieldCount 无效."错误. 我看了他的代码,使用 ...

  9. 手机web下拉加载

    //需要 zepto.js支持 var page=0;//当前页 var pages=1;//总页数 var ajax=!1;//是否加载中 Zepto(function($){ $(window). ...

  10. C# ASP.NET CSV文件导入数据库

    原文:C# ASP.NET CSV文件导入数据库 using System; using System.Collections.Generic; using System.Text; using Sy ...