2017-6-1 Linq表达式 Lambda 表达式

1.Linq:Linq to sql 类    高度集成化的数据库访问技术

使用Linq是应该注意的问题:

  1.创建Linq连接后生成的dbml文件不要变动,生成的表不要碰,拖动表也会造成数据库连接发生变动,需要重新保存.
  2.属性拓展的使用:添加一个新的类,不要在dbml中添加属性拓展,一旦数据库变动,属性拓展类就会失效.
  3.使用Linq获取的数据都是?int,?string等?数据类型,意思是也有可能为空,这时候操作数据需要先把数据类型转化成int,string等数据类型.

2.实体类:

  添加一个Linq to sql 类 ----选择要使用的数据库---- 拖入要使用的表  就相当于实体类建完了。

  如果进行属性扩展,在App_Code下添加类,类名同表名一致。将该类在访问修饰符后加上partial,将该类定为实体类的一部分

  属性扩展的代码:

  

public partial class Users
{
    public string SexStr
    {
        get
        {
            string aa = null;
            if(this._Sex!=null){
                aa=Convert.ToBoolean(_Sex) ? "男" : "女";
            }
            return aa;
        }

    }
    public string Bir
    {
        get
        {
            string bb = null;
            if (this.Birthday != null)
            {
                bb = Convert.ToDateTime(_Birthday).ToString("yyyy年MM月dd日");
            }
            return bb;
        }

    }

    public string NationName
    {
        get
        {
            return Nation1.NationName;
        }
    }
    public string ClassName
    {
        get
        {
            return Class1.ClassName;

        }
    }

}

3.数据访问类:

  不用书写数据访问类,直接在使用数据访问类的地方用Linq进行访问就行

  

 using(stu0314DataClassesDataContext con = new stu0314DataClassesDataContext() )
            {
                Repeater1.DataSource = con.Users.ToList();
                Repeater1.DataBind();

            }

con.Users.ToList();相当于访问Users表中的全部数据,并将数据转换成一个泛型集合

4.添加数据:

  (1)添加数据之前先实例化出对象,(2)填充数据,(3)创建链接(4)添加到数据库中

  添加的方法:con.Users.InsertOnSumbit(对象);  执行要操作的方法:con.SubmitChanges();

  

Users uu = new Users();
                uu.UserName = Text_Uname.Text;
                uu.PassWord = Text_pwd2.Text;
                uu.NikeName = Text_Nike.Text;
                if (Ra_Sex.Items[1].Selected)
                {
                    uu.Sex = false;
                }
                else
                {
                    uu.Sex = true;
                }
                uu.Birthday = Convert.ToDateTime( Text_Bir.Text);
                uu.Nation = Dr_Nation.SelectedValue;
                uu.Class = Dr_Cla.SelectedValue;

                con.Users.InsertOnSubmit(uu);
                con.SubmitChanges();

5.删除数据:  

  删除数据前要先查到这条数据再进行删除操作

  通过ids进行查询这条数据返回一个对象

  Users u = con.Users.Where(r=>r.ids.Tostring()==ids).FirstOrDefault();

  where括号内接的是Lambda表达式r代表每一行数据,=>是基本格式 FirstOrDefault()返回第一条数据或者返还空

  如果u不是空,则进行进行删除。如果为空,返回的是null

  con.Users.DeleteOnSubmit(对象);

  con.SubmitChanges();

  

 string aa = Request["id"];
        using (stu0314DataClassesDataContext con = new stu0314DataClassesDataContext())
        {
            Users u = con.Users.Where(r => r.ids.ToString() == aa).FirstOrDefault();
            con.Users.DeleteOnSubmit(u);
            con.SubmitChanges();
            Response.Redirect("Default.aspx");

        }

6.修改数据:

  修改数据也是需要先查询到要修改的数据,对数据进行重新赋值,修改

  

using(stu0314DataClassesDataContext con = new stu0314DataClassesDataContext() )
        {
            string aa = Request["id"];
            Users u = con.Users.Where(r=>r.ids.ToString()==aa ).FirstOrDefault();
            u.UserName = Text_Uname.Text;
            u.PassWord = Text_pwd2.Text;
            u.NikeName = Text_Nike.Text;
            if (Ra_Sex.Items[1].Selected)
            {
                u.Sex = false;
            }
            else { u.Sex = true; }

            u.Nation = Dr_Nation.SelectedValue;
            u.Class = Dr_Cla.SelectedValue;
            con.SubmitChanges();
            Response.Write("<script> var aa = confirm(‘修改成功!!‘); if(aa){window.location.href=‘Default.aspx‘}</script>");
        }

7.Lambda表达式:

  con.Users.Where(r=>r.ids.Tostring()==ids).FirstOrDefault();返回满足条件的第一条数据或者返还空

  如果是两个条件查询的话用&&接

  con.Users.Where(r=>r.UserName=="zhangsan" && r.PassWord=="123").FirstOrDefault();

  

时间: 2024-10-13 11:24:41

2017-6-1 Linq表达式 Lambda 表达式的相关文章

SQL、LINQ和Lambda表达式

首先说说这三者完全是三种不同的东西,SQL是结构化查询语言(Structured Query Language)简称,这大家再熟悉不过了,下面主要介绍LINQ和Lambda表达式的基本概念以及同一查询这三者的不同实现. 简单介绍 LINQ(Language Integrate Query)是语言集成查询他在对象和数据之间建立一种对应的关系,可以使用访问内存对象的方式查询数据集合.LINQ查询是C#中的一种语言构造.因此开发人员可以再C#代码汇总嵌套类似于SQL语句的查询表达式,从而实现数据查询的

Linq之Lambda表达式初步认识

目录 写在前面 匿名方法 一个例子 Lambda 定义 一个例子 总结 参考文章 写在前面 元旦三天在家闲着无事,就看了看Linq的相关内容,也准备系统的学习一下,作为学习Linq的前奏,还是先得说说Lambda与匿名方法的知识点.也算是对知识点的查漏补缺吧,也许你会说这没啥大不了的,项目中都在用,但是有些知识,你回头在查看的时候,总会有那么点不一样的收获,这点我是感同身受的,我看书有个习惯,一本书,我能看个三四遍,每次总会有收获.当然,你可以说,当时肯定没认真看,不是那样子的,我认为最直接的原

C#知识体系(一) --- 常用的LInq 与lambda表达式

LinQ是我们常用的技术之一.因为我们绕不开的要对数据进行一系列的调整,如 排序. 条件筛选.求和.分组.多表联接 等等. lambda则是我们常用的语法糖,配合linq使用天衣无缝,不知不觉就用上了,主要还是看着代码简洁,逼格够高... 接下来我们就来看看常用的有哪些 先来点基础数据 //用户类 public class User { [DataMember] public int ID { get; set; } [DataMember] public string Name { get;

SQL、Linq和Lambda表达式 的关系

首先说说这三者完全是三种不同的东西,SQL是结构化查询语言(Structured Query Language)简称,这大家再熟悉不过了,下面主要介绍LINQ和Lambda表达式的基本概念以及同一查询这三者的不同实现. 简单介绍 LINQ(Language Integrate Query)是语言集成查询他在对象和数据之间建立一种对应的关系,可以使用访问内存对象的方式查询数据集合.LINQ查询是C#中的一种语言构造.因此开发人员可以再C#代码汇总嵌套类似于SQL语句的查询表达式,从而实现数据查询的

APS.NET MVC + EF (01)---Linq和Lambda表达式

1.1 Linq介绍 LINQ全称 Language Integrated Query(语言集成查询).为我们提供一种统一的方式来查询和操作各种数据. LINQ to Object:是针对实现了IEnumerable<T>的对象的LINQ: LINQ to SQL:是针对关系数据库的LINQ: LINQ to XML:是针对XML文档的LINQ. LINQ除了提供一个统一的API来操作各种数据,并且为我们提供了编译时类型检查和动态创建查询表达式的能力. LINQ查询时有两种语法可供选择:查询表

兰姆达表达式Lambda 表达式(C# 编程指南)

转https://msdn.microsoft.com/zh-cn/library/bb397687.aspx Lambda 表达式是一种可用于创建委托或表达式目录树类型的匿名函数.通过使用 lambda 表达式,可以写入可作为参数传递或作为函数调用值返回的本地函数.Lambda 表达式对于编写 LINQ 查询表达式特别有用. 若要创建 Lambda 表达式,需要在 Lambda 运算符 => 左侧指定输入参数(如果有),然后在另一侧输入表达式或语句块.例如,lambda 表达式 x => x

【2017-06-01】Linq基础+Lambda表达式实现对数据库的增删改查

一.Linq to sql 类 高集成化的数据库访问技术 使用Linq可以代替之前的Ado.Net.省去了自己敲代码的实体类和数据访问类的大量工作. 实体类: 添加一个Linq to sql 类 ----选择要使用的数据库---- 拖入要使用的表  就相当于实体类建完了. 如果进行属性扩展,在App_Code下添加类,类名同表名一致.将该类在访问修饰符后加上partial,将该类定为实体类的一部分 数据访问类: 不用在App_Code下再建数据访问类了. 直接在使用数据访问类的地方用数据库上下文

Linq基础+Lambda表达式对数据库的增删改及简单查询

一.Linq to sql 类 高集成化的数据库访问技术 使用Linq可以代替之前的Ado.Net,省去了自己敲代码的实体类和数据访问类的大量工作 实体类: 添加一个Linq to sql 类 ----选择要使用的数据库---- 拖入要使用的表  需要立即保存 就相当于创建实体类 如果进行属性扩展,在App_Code下添加类,类名同表名一致.将该类在访问修饰符后加上partial,将该类定为实体类的一部分 数据访问类: 不用在App_Code下再建数据访问类了. 直接在使用数据访问类的地方用数据

LINQ使用Lambda表达式选择几列

学习LINQ的Lambda的表达式,尝试从数据集合中,选择其中几列. 创建一个model: source code: namespace Insus.NET.Models { public class ProdImage { public int ProductID { get; set; } public int Type { get; set; } public int Priority { get; set; } public string Url { get; set; } public