• 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();

      

  • 相关阅读:
    jq 判断单选是否选中
    C# Split 分隔符为字符串及空格的处理
    MSSQL中的bit类型
    js 判断textarea 不为空
    [转]C#中out 及 ref 区别
    [转]asp.net中时间差的问题
    [转]C# Array 数组 及 一些操作
    Addr、@运算符与Pointer类型
    关于Pascal语言中的分号
    关于以后的文章
  • 原文地址:https://www.cnblogs.com/qingnianxu/p/6936187.html
Copyright © 2020-2023  润新知