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

linq to sql 增删改查的更多相关文章

  1. Linq to sql 增删改查(转帖)

    http://blog.csdn.net/pan_junbiao/article/details/7015633   (LINQ To SQL 语法及实例大全) 代码 Code highlightin ...

  2. linq的简单增删改查

    Linq高集成化的数据访问类,它会自动映射数据库结构,将表名完整映射成为类名,将列名完整映射成字段名数据库数据访问,能大大减少代码量.(反正最后结果就是不用写ado.Net那一套增删改查,有一套封装好 ...

  3. [原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界

    本文原始作者博客 http://www.cnblogs.com/toutou Linq 入门篇(一):分分钟带你遨游linq to xml的世界 本文原创来自博客园 请叫我头头哥的博客, 请尊重版权, ...

  4. 表结构修改以及sql增删改查

    修改表结构 修改表名 alter table 表名 rename 新名 增加字段 alter table 表名 add 字段名 数据类型 约束 删除字段 alter table 表名 drop 字段名 ...

  5. sql增删改查封装

    App.config文件 <?xml version="1.0" encoding="utf-8" ?> <configuration> ...

  6. sql增删改查-转载

    一.增:有2种方法 1.使用insert插入单行数据: 语法:insert [into] <表名> [列名] values <列值> 例:insert into Strdent ...

  7. SQL增删改查

    1.增 INSERT INTO table_name VALUES (value1, value2,....) INSERT INTO table_name (列1, 列2,...) VALUES ( ...

  8. Linq to XML 增删改查

    Linq to XML同样是对原C#访问XML文件的方法的封装,简化了用xpath进行xml的查询以及增加,修改,删除xml元素的操作.C#访问XML文件的常用类:XmlDocument,XmlEle ...

  9. SQL 增删改查(具体)

    一.增:有3种方法 1.使用insert插入单行数据: insert [into] <表名> [列名] values <列值> insert into Strdents (na ...

随机推荐

  1. 如何让windows服务器IIS支持.apk/.ipa文件下载

    打开IIS服务管理器,找到服务器,右键-属性,打开IIS服务属性: 单击MIME类型下的“MIME类型”按钮,打开MIME类型设置窗口: 单击“新建”,建立新的MIME类型: 扩展名是:.apk MI ...

  2. WebService《JavaEE6权威指南 基础篇第4版》

    [Web服务] 为运行在不同平台和框架之上的软件提供了互操作的标准方式.良好的互操作性和可扩展性.消息采用自包含文档的形式. ——解决异构系统之间交互.解决异构系统通信问题:  1.通过XML,JSO ...

  3. HTML to DOM

    Although you can now natively parse HTML using DOMParser and XMLHttpRequest, this is a new feature t ...

  4. Oracle:递归查询(树形结构数据)

    今天要做一个查询功能:查询某用户所属部门,且包含该部门的所有上级部门信息.偶然找到了一个方法,特意来做个笔记.分享给和我一样的菜鸟,哈哈 查询子节点 1 select * 2 from d_arc_d ...

  5. Oracle中TO_DATE格式

    转自:http://www.cnblogs.com/ajian/archive/2009/03/25/1421063.html TO_DATE格式(以时间:2007-11-02   13:45:25为 ...

  6. 【转】Android图片加载神器之Fresco-加载图片基础[详细图解Fresco的使用]

    Fresco简单的使用—SimpleDraweeView 百学须先立志—学前须知: 在我们平时加载图片(不管是下载还是加载本地图片…..)的时候,我们经常会遇到这样一个需求,那就是当图片正在加载时应该 ...

  7. C# 如何编辑文件的摘要信息

    我的以前的测试报告程序需要在倒完测试数据报告后,在文件摘要中加上一些类似版权说明的文字等等. 因此需要对文件摘要信息进行编辑. 我的记忆中以前好像只有office文档才可以又摘要信息, 现在看来基本上 ...

  8. Javascript模块化编程系列三: CommonJS & AMD 模块化规范描述

    CommonJS Module 规范 CommonJS 的模块化规范描述在Modules/1.1.1 中 目前实现此规格的包有: Yabble,CouchDB,Narwhal (0.2), Wakan ...

  9. css常用知识

    1.基本语法规范p {color:#ff0000;background:#ffffff}a.其中"p"称为"选择器"(selectors),指明我们要给&quo ...

  10. [转]使用 PIVOT 和 UNPIVOT

    可以使用 PIVOT 和 UNPIVOT 关系运算符将表值表达式更改为另一个表.PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执 ...