LINQ简介

LINQ:语言集成查询(Language INtegrated Query)是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。

LINQ是一门查询语言,和SQL一样,通过一些关键字的组合,实现最终的查询。

LINQ的分类

LINQ to Object
LINQ to XML
LINQ to SQL
LINQ to DataSet
LINQ to ADO.NET

命名空间为System.Linq;

LINQ查询

语法:
from 临时变量 in 集合对象或数据库对象
  where 条件表达式
  [orderby条件]
  [group by 条件]
  select 临时变量中被查询的值

例:from c in Student select c;

假设Student是一个数据库表对应的一个实体类

则查询语句为:
from c in Student select c; 
 //整表查询

from c in Student where c.name==“张三“ select c;  //查询姓名为张三的所有信息

其中C为临时变量,可任意取。

查询几个字段

1、查询student表中的几个字段

var query=from c in student  select new {c.number,c.name,c.age};

2、查询student表中的几个字段,并重新设定列名

var query=from c in student select new {学号=c.number,姓名=c.name, 年领=c.age};

注意事项

linq查询语句必须以from子句开始,以select 子句结束。
Linq是在.NET Framework 3.5 中出现的技术,所以在创建新项目的时候必须要选3.5或者更高版本,否则无法使用。

3、排序

var query=from c in student  orderby c.age ascending  select c;  //升序

var query=from c in studeng orderby c.age descending  select c;//降序

4、分组

var  query=from c in student group c by c.sex into d select new {性别=c.age}; //d为新表,c.sex为分组字段

5、过滤重复记录

var query=(from c in dc.student  select new {c.place}).Distinct();//Distinct()的作用是过滤重复的记录。
var query=(from c in dc.student select new {分布地区=c.place}).Distinct();

6、查询行数

(1)查询表的总行数

int count=student.count();

(2)查询满足条件的行数

int count=(from c in  student  where c.name=="王明" select c).count();

7、模糊查询

from c in dc.Student where c.name.Contain(“王”) select c

查询姓名中含有王字的所有学生

var query=from c in dc.Student where c.number.Contain(“2009”) select c

查询学号中含有2009字符的所有学生

查询结果

LINQ的查询结果有可能是一个对象,也有可能是一个数据集,可用var类型进行接收
如:var query=from c in Student select c;
输入结果可用foreach循环
如:var query=from c in Student select c;
       foreach( var x in query)
       { Response.Write(x.toString());}

常用函数

Count( ):计算查询结果的行数
Distinct( ):对查询结果的重复行进行筛选
First( ):取得查询结果的第一行
Last( ):取得查询结果的最后一行
Take(n):取得查询结果的前n行
Skip(n):略过前n行,从n+1行开始取
Skip(m).Take(n):从m+1行开始取后面的n行

8、更新操作

思路:先把需要更新的行查询出来,然后进行更新。LINQ只需要写出查询语句即可,不需要写更新语句!
例:将学生表中学号为00001的学生进行更新

1、(from c in Stuent where c.id==“00001” select c).First();

在数据空间中显示数据查询结果:

//前两行是连接数据库,其中第一中,经常用,可以放到最开始,这样就不必每次用到时都写了。

studentDataContext dc = new studentDataContext(); 注意://xxxDataContext需要与.dbml的文件名一致

var query=from c in dc.student select c;

GridView1.DataSource=query;

GridView1.DataBind();

更新操作

string num = TextBox2.Text.Trim();  //将要更新学号为多少的相关信息
string name = TextBox3.Text.Trim();//更新的姓名
int age = Convert.ToInt32(TextBox4.Text.Trim());//Int32整型 //更新的年龄
StudentDataContext dc=new StudentDataContext();
student stu=(from c in dc.student where c.number==num select c).First();//变量,选取第一行。where后根据主键来更新,其他字段不能。即通过获取主键后,来更新其他字段。
//除过主键不修改外,其他字段都可以修改
stu.name = name;//将新修改的名字赋值给数据库中的字段名name
stu.age = age;//修改年龄
dc.SubmitChanges();//真正的用于修改数据库。
bind();//一更改,就显示,和及时刷新相同。
 private void bind()

{

studentDataContext dc = new studentDataContext();
var query = (from c in dc.student select c); //全表查询 GridView1.DataSource = query;
GridView1.DataBind(); }

9、插入操作

//插入
string num = TextBox1.Text.Trim();
string username = TextBox2.Text.Trim();
string sex = TextBox3.Text.Trim();
string place = TextBox4.Text.Trim();
int age = Convert.ToInt32(TextBox5.Text.Trim()); student stu = new student();//创建对象
//赋新值
//主键不能重复
stu.number = num;
stu.name = username;
stu.sex = sex;
stu.place = place;
stu.age = age;
dc.student.InsertOnSubmit(stu);//对表studen表进行插入操作。//注意,该函数必须写正确。
dc.SubmitChanges();//数据库保存
bind();//内容和上面的相同

10、数据删除

 string num = TextBox6.Text.Trim();
student stu =(from c in dc.student where c.number == num select c).First();
dc.student.DeleteOnSubmit(stu);//删除数据库中的字段,具体怎样删除不管,只管调用该函数即可。
dc.SubmitChanges();
bind();

linq to sql转载的更多相关文章

  1. 【转载】ADO.NET与ORM的比较(3):Linq to SQL实现CRUD

    [转载]ADO.NET与ORM的比较(3):Linq to SQL实现CRUD 说明:个人感觉在Java领域大型开发都离不了ORM的身影,所谓的SSH就是Spring+Struts+Hibernate ...

  2. 转载一篇文章:LINQ TO SQL 大全

    https://www.cnblogs.com/chenwolong/p/lts.html 最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河 ...

  3. LINQ to SQL更新数据库操作(转载)

    使用LINQ to SQL建模Northwind数据库 在这之前一起学过LINQ to SQL设计器的使用,下面就使用如下的数据模型: 当使用LINQ to SQL设计器设计以上定义的五个类(Prod ...

  4. 转载linq to sql 的详解

    [转]LINQ To SQL 语法及实例大全 2011-11-26阅读38651 评论9 LINQ to SQL语句(1)之Where Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL ...

  5. (转载)一步一步学Linq to sql系列文章

    现在Linq to sql的资料还不是很多,本人水平有限,如果有错或者误导请指出,谢谢. 一步一步学Linq to sql(一):预备知识 一步一步学Linq to sql(二):DataContex ...

  6. [转载代码]VB.NET 中查询 Linq to SQL 执行时的SQL语句

    在搜索使用LINQ TO SQL 添加数据后获得自增长ID的方法时,发现C#可以使用DebuggerWritter把使用Linq to SQL执行的SQL语句显示到即时窗口,于是在网上搜索到在VB.N ...

  7. LINQ to SQL和Entity Framework对比与关联 (转载)

    LINQ to SQL和Entity Framework对比与关联       LINQ to SQL和Entity Framework都是一种包含LINQ功能的对象关系映射技术.他们之间的本质区别在 ...

  8. LINQ to SQL语句(20)之存储过程

    在我们编写程序中,往往需要一些存储过程,在LINQ to SQL中怎么使用呢?也许比原来的更简单些.下面我们以NORTHWND.MDF数据库中自带的几个存储过程来理解一下. 1.标量返回 在数据库中, ...

  9. LINQ TO SQL 大全

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 LINQ to SQL语句(1)之Where 适用场景: ...

随机推荐

  1. Openerp上传中文名附件,下载时报错的处理方法

    文档管理中,如果上传的文件名含有中文字符,下载时会提示出错,如没有权限等.这个问题困惑我比较久的时间,通过跟踪openerp_server.log,可以看到类似提示: 2012-09-28 21:51 ...

  2. jstl表达式

    JSTL标签库 1.什么是JSTL JSTL是apache对EL表达式的拓展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL标签使用以来非常方便, 它与JSP动作标签一样,只不过它不是JSP ...

  3. BZOJ 3668 起床困难综合症

    按位贪心. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm& ...

  4. pandas.Panel数据

    from pandas import Panel, DataFrame import numpy as np dd = {} for i in range(1, 3): name = 'X' + st ...

  5. css3用AnimationEnd判断动画是否完成, css3在动画完成后执行事件

    用css3的animation完成一个动画,当只有这个动画完成时才执行令一个事件,比如让动画保持在终止的状态或其他一些事件.我们该怎么办呢. 第一种方法: 用计时器,设定一个和动画时长一样的time, ...

  6. 详解Android动画之Frame Animation(转)

    在开始实例讲解之前,先引用官方文档中的一段话: Frame动画是一系列图片按照一定的顺序展示的过程,和放电影的机制很相似,我们称为逐帧动画.Frame动画可以被定义在XML文件中,也可以完全编码实现. ...

  7. android事件系列-onTouch事件与手势操作

    提示记忆:应用流程:在Activity中对控件执行 view.setOnTouchListener( OnTouchListener i);实现里面的OnTouchListener 接口中的方法,重点 ...

  8. ecshop 修改模板可输出php代码

    1.找到includes 文件夹下的 cls_template.php function fetch_str函数 2.只留下以下代码 function fetch_str($source) { if ...

  9. Android中Bitmap, Drawable, Byte,ID之间的转化

    Android中Bitmap, Drawable, Byte,ID之间的转化 1.  Bitmap 转化为 byte ByteArrayOutputStream out = new ByteArray ...

  10. 查看MySQL的警告信息

    在王MySQL数据库导入数据的时候经常会出现警告,这些警告很容易被忽视,今天到数据的时候突然想看看警告的内容是什么,百度了一下mysql查看警告的命令 show warnings; 命令很简明,一查看 ...