zoukankan      html  css  js  c++  java
  • LinQ

    linQ:语言集成查询(Language INtegrated QueryLINQ)是一项微软技术,新增一种自然查询的SQL语法到.NET Framework的编程语言中,可支持Visual Basic .NET以及C#语言。

      命名空间:System.Linq;

      注意:Linq是在.NET Framework 3.5 中出现的技术,所以在创建新项目的时候必须要选3.5或者更高版本,否则无法使用。

      选择3.5或更高版本的.NET Framework之后,创建的新项目中会自动包含System.Linq的命名空间。

      LINQ to SQL :高集成化的数据访问类,它会自动映射数据库结构,将表名完整映射成为类名,将列名完整映射成字段名

      1LinQ创建

      Linq文件是dbml结尾,一个数据库对应一个Linq文件

      增删改查的方法

      增 

    Data0720DataContext con = new Data0720DataContext();//实例化LinQ类
        public UserData()
        {
        }
        public void Insert(Users u)
        {
            con.Users.InsertOnSubmit(u);//Users数据库表明,u 要添加的对象
        con.SubmitChanges();//提交执行添加 
      }

     

      

     public void Delete(string username)
        {
            //根据username查出Users对象
            Users u = con.Users.Where(r => r.UserName == username).FirstOrDefault();
            //删除
            con.Users.DeleteOnSubmit(u);
            con.SubmitChanges();
        }
    r => r.UserName == username是Lambda 表达式
    参数列表 => 语句或语句块
    其中“参数列”中可包含任意个参数(与委托对应),如果参数列中有0个或1个以上参数,则必须使用括号括住参数列

      在 is as 运算符的左侧不允许使用 Lambda

      适用于匿名方法的所有限制也适用于 Lambda 表达式。

      Lambda 表达式(lambda expression)是一个匿名函数Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没   有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同)。

       

    public void Update(Users u)
        {
            //查要修改的对象
            Users uuu = con.Users.Where(r => r.UserName == u.UserName).FirstOrDefault();
            if (uuu != null)
            {
                //修改的列
                uuu.PassWord = u.PassWord;
                uuu.NickName = u.NickName;
                uuu.Sex = u.Sex;
                uuu.Birthday = u.Birthday;
                uuu.Nation = u.Nation;
            }
            con.SubmitChanges();
        }

       (以car表为例查询方法)

      1.模糊查(包含).Contains

      public List<Car> Select(string name)
        {
            return con.Car.Where(r => r.Name.Contains(name)).ToList();
        }

      2.开头查:.StartsWith(name)

    public List<Car> Select(string name)
    
    {
          return con.Car.Where(r => r.Name.StartsWith(name)).ToList();//开头查
    }

     3.结尾:.EndsWith(name)

    public List<Car> Select(string name)
    
    {
         return con.Car.Where(r => r.Name.EndsWith(name)).ToList();//结尾
     }

     4.查个数:查所有取集合的个数.Count()

      List<Car> list = new CarData().Select();

        Label1.Text = list.Count.ToString();

     5.最大值:Ma(r => r.price);最小值:Min(;平均值:Average();求和:Sum();查看一列

    public decimal? SelectMAX()
    
        {
            return con.Car.Max(r => r.Price);//取一列的最大值返回decimal?类型
        }

      6.排序:升序:OrderBy(r => r.price)降序:OrderByDescending(r => r.price)

    public List<Car> Orderby()
    
        {
            return con.Car.OrderBy(r => r.Price).ToList();
        }

      7.分页:

    public List<car> Select(int count, int number)
    
        {
            return con.car.Skip(count * (number - 1)).Take(count).ToList();
        } 

    8.组合查询:取集合的交集Intersect()

    using (mydbsDataContext con = new mydbsDataContext())
    
            {
                var All = con.Car.AsEnumerable();
    
                if (TextBox1.Text.Trim().Length > 0)
                {
    
                    var namelist = con.Car.Where(r => r.Name.Contains(TextBox1.Text.Trim())).AsEnumerable();
    
                    All = All.Intersect(namelist);
    
                }
    
                if (TextBox2.Text.Trim().Length > 0)
    
                {
    
                    var brlist = con.Car.Where(r => r.Brand.Contains(TextBox2.Text.Trim())).AsEnumerable();
    
                    All = All.Intersect(brlist);
    
                }
    
                if (TextBox3.Text.Trim().Length > 0)
    
                {
                    var oillist = con.Car.Where(r => r.Oil.ToString() == TextBox3.Text.Trim()).AsEnumerable();
    
                    All = All.Intersect(oillist);
                }
                Repeater1.DataSource = All;
    
                Repeater1.DataBind();
    
            }
    
     
  • 相关阅读:
    协方差
    小世界网络和无标度网络
    复杂网络谱分析
    图谱
    复杂网络基本概念
    Smarty模板引擎的使用
    ThinkPHP6使用过程中的一些总结。
    ThinkPHP6.0使用富文本编辑器wangEditor3
    ThinkPHP6.0在phpstorm添加查询构造器和模型的代码提示
    在线生成二维码API接口
  • 原文地址:https://www.cnblogs.com/fuze/p/6377285.html
Copyright © 2011-2022 走看看