• linq to sql 增删改查


    ORM《Object Relation Mapping》

    Linq To Sql:

    一、建立Linq To Sql 类 :
    理解上下文类: Linq To Sql 类名+context 利用上下文类可以访问数据库中的每一个表;


    ****************************************** 分类 应用*******************************************************
    注: 1 info为实际引用的表名 
    2 在执行某一功能时都需要先将上下文类实例化出来。

    ★★★★★ ★★★★★ ★★★★★ ★★★★★ 一、查询类 ★★★★★ ★★★★★ ★★★★★ ★★★★★ ★★★★★ 
    MyDBdataContext context= new MyDBContext();//将上下文类实例化
    1 查询所有并显示
    MyDBdataContext context= new MyDBContext();//将上下文类实例化
    list<info> list = context.info.tolist(); //执行查询操作;
    DataGridView1.DataSouse = list; //将查询到的数据显示出来
    2 单条件查询--等值查询 
    var mama = from p in context. info where p.code == "n002" select p // 查询方式一
    var mama = context.info where (p=>p.code=="n002"); //查询方式二 lambda 表达式 

    dataGridview1.datasouce = mama // 送至页面显示;
    3 单条件查询----不等值查询 
    var mama = from p in context.info where p.code !="n002" select p //法一
    var mama = context.info where (p=>p.code !=n002); // 法二 lambda 表达式
    var mama = context.info where( p => datatime.now - p.birthday.values.year); // 时间的提取方法

    dataGridview1.datasouce = mama // 送至页面显示;
    4 多条件查询:
    //var query = from p in _Context.Info where p.Sex == true && p.Birthday.Value.Year > 1985 select p; //法一
    //var query = _Context.Info.Where(p=>p.Sex==true && p.Birthday.Value.Year>1985); 法二 lanbda 表达式
    var query = _Context.Info.Where(p => p.Sex == true).Where(p=>p.Birthday.Value.Year>1985) ; //多条件逻辑与可以用链式表达式写
    dataGridView1.DataSource = query;
    5 模糊查询: 
    var mama = from p in context.info where p.name contains("张") selsect p ;// 相当于 like'%张%' 模糊查询--包含什么字符的信息
    //var query = from p in _Context.Info where p.Name.StartsWith("张") select p; // like '张%' 模糊查询--以什么字符开头的信息

    //var query = from p in _Context.Info where p.Name.EndsWith("张") select p; //like '%张' 模糊查询--以什么字符结尾的信息
    //var query = from p in _Context.Info where p.Name.Substring(1,1) == "张" select p;// like '_张%' 模糊查询-- 一第几位是什么字符的信息

    var query = _Context.Info.Where(p => p.Name.StartsWith("张"));
    6 集合操作:
    var q1 = from p in _Context.Info where p.Sex== true select p;
    var q2 = _Context.Info.Where(p => p.Birthday.Value.Year > 1985);

    交集 : var query = q1.Intersect(q2);
    并集 : var query = q1.Union(q2);
    差集 : var query = q2.Except(q1); 
    7 统计函数:

    var query = _Context.Info.Where(p => p.Birthday.Value.Year > 1985);
    //this.Text = query.Count().ToString(); // 求数量
    //this.Text = query.Sum(p=>DateTime.Now.Year - p.Birthday.Value.Year).ToString(); //求和
    //this.Text = query.Average(p => DateTime.Now.Year - p.Birthday.Value.Year).ToString();//求平均值
    //this.Text = query.Max(p => DateTime.Now.Year - p.Birthday.Value.Year).ToString() ; // 求最大值
    this.Text = query.Min(p => DateTime.Now.Year - p.Birthday.Value.Year).ToString(); // 求最小值

    7 转化操作: 
    var mama = from p in context.info where p.name contains "张" select p;

    List<info> list = mama.ToList(); // 将查询结果转化为泛型集合:
    info[] list = mama.ToArray(); // 将查询结果转化为数组;
    info data = mama.tosingle(); // 将查询结果转化为单个对象
    info data= mama.tofirst(); // 将查询结果转化为单个对象

    8 将查询结果 分页操作
    //每页多少条pagesize,要找第几页pageno
    var query = _Context.Info.Skip(2*3).Take(2); // 从查询结果中skip(跳跃)2行 每行3条记录 要取跳跃后的 2 行;

    dataGridView1.DataSource = query;
    9 特殊用法记录 
    1 去除查询中的重复语句: var mama = from p in convert.info where p.name contains "张"select p .distinct() ;


    ★★★★★ ★★★★★ ★★★★★ ★★★★★ 二 、添加类 ★★★★★ ★★★★★ ★★★★★ ★★★★★ ★★★★★ 
    添加操作:
    MyDBdataContext context= new MyDBContext();//将上下文类实例化
    info data = new info();// 将要添加的表格先实例化;
    data.Code = txtCode.Text; // 进行初始化
    data.Name = txtName.Text; 
    data.sex =Convert.Toboolean(textsex.text); 
    data.nation =txtNation.Text;
    data.Birthday = Convert.TodateTime(textBirthday.Text); 

    Context.info.insertOnSubmit(data ); //告知上下文类在点击提交的时候执行插入操作;

    Context.SubmitChanges(); // 上下文提交到数据库 

    ★★★★★ ★★★★★ ★★★★★ ★★★★★三、删除类 ★★★★★ ★★★★★ ★★★★★ ★★★★★ ★★★★★ 
    删除操作
    // 通过上下文类找到要删除的对象
    MyDBdataContext context= new MyDBContext();//将上下文类实例化
    var sc = from mama in context.info where mama.Code select mama;
    if(sc.count() >0)
    info data = sc.first();
    // 告诉上下文一下
    Context.info.delectOnsubmit(data);
    // 上下文类提交到数据库
    Context.SubmitChangs();

    ★★★★★ ★★★★★ ★★★★★ ★★★★★四 、修改类 ★★★★★ ★★★★★ ★★★★★ ★★★★★ ★★★★★ 
    修改操作
    MyDBdataContext context= new MyDBContext();//将上下文类实例化
    //找到要修改的数据
    var tianjia = from mama in Context.info where p.code == txtcode.text select mama
    // 修改数据
    data.Name = txtName.Text;
    data.Sex = Convert.ToBoolean(txtSex.Text);
    data.Nation = txtNation.Text;
    data.Birthday = Convert.ToDateTime(txtBirthday.Text);
    // 上下文类提交到数据库
    Context.Submitchanges();

  • 相关阅读:
    android 近百个源码项目【转】
    503 Service Temporarily Unavailable
    linux 复制文件夹内所有文件到另一个文件夹
    国甲魔方(1)
    大雁展翅,轮回,国甲,国丙,速龙,傲龙,御龙这些魔方有什么区别
    77教师一定要看的15部电影【附下载地址】
    教师一定要看的15部电影
    孩子
    为什么我的 app:actionViewClass="android.widget.SearchView"和app:showAsAction="ifRoom|collapseActionView"才有
    大数据征信 是伪命题?还是金融行业的救世主?
  • 原文地址:https://www.cnblogs.com/tianxuan/p/4768028.html
Copyright © 2020-2023  润新知