前天开始看这方面的资料,虽然看了网上对比 sql和linq的速度,万条数据可能要慢1/4左右的数度,但是介于的方便,还是学了

首先看看linq的基本语法:

FROM XX IN DATASOURCE

WHERE 条件表达式

ORDERBY XXXXX

SELECT XX

和T-sql语句很像,只是说顺序有点不一样罢了

我的是VS2012的环境,在项目中添加Linq to sql 的类,后缀是dbml,然后把你的数据库中的表直接拖到界面上就是,对,就是直接拖就可以了,这样好像所谓的ORM(对象关系映射)层就弄好了

这样之后我们就可以通过linq to sql 很简单的去操作数据库了

vs会自动生成一个datacontext的类(又成为上下文类),(根据dbml文件的名字生成的)我这边是linq_notedatacontext

首先我们先来做查询:

 linq_noteDataContext l = new linq_noteDataContext();

实例化datacontext

  linq_noteDataContext l = new linq_noteDataContext ();
var results = from data in l.note
where data.title = "我的祖国"
select data;
foreach (var d in results)
Response.Write(d.ToString());

插入操作

//插入数据库

            db_product_information pdd = new db_product_information(); //实例化你数据库中的一张表,额。。。应该称之为实例化吧
pdd.Product_id = "";
pdd.Product_name = "hrx";
pdd.Product_sum = ;
pdd.support_id = ;
productDataContext pd = new productDataContext(); //datacontext
pd.db_product_information.InsertOnSubmit(pdd); //插入操作
pd.SubmitChanges();//更新到数据库,这个动作,不管是插入删除,还是更新都要

修改操作

//修改数据
productDataContext pd = new productDataContext();
var result = from data in pd.db_product_information
where data.support_id ==
select data;
foreach (var i in result)
{
i.support_id = ;
}
pd.SubmitChanges();

删除操作

//删除数据
productDataContext pd = new productDataContext();
var result = from data in pd.db_product_information
where data.Product_name == "hrx"
select data;
foreach (var i in result)
{
pd.db_product_information.DeleteOnSubmit(i);
pd.SubmitChanges();
}

然后是使用存储过程

同样,我们把存储过程直接拖到dbml设计器上

vs会自动在datacontext派生类里面生成相关的存储过程的调用方法:

我们依然就是直接用就可以了

//使用存储过程
productDataContext pd = new productDataContext();
var result = from data in pd.sp_product() //sp_product是我的存储过程的名字
select data;
foreach (var i in result)
{
listBox1.Items.Add(i.Product_id .ToString()+" "+i.Product_name .ToString ()+" "+i.Product_sum .ToString ()+" "+i.support_id .ToString ());
}

这些操作我想做中小项目应该是够了吧?

还有延迟加载什么的我看不懂。。

Linq to SQL 小结的更多相关文章

  1. LINQ to SQL语句(7)之Exists/In/Any/All/Contains

    适用场景:用于判断集合中元素,进一步缩小范围. Any 说明:用于判断集合中是否有元素满足某一条件:不延迟.(若条件为空,则集合只要不为空就返回True,否则为False).有2种形式,分别为简单形式 ...

  2. 年终巨献 史上最全 ——LINQ to SQL语句

    LINQ to SQL语句(1)之Where 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句.Where操 ...

  3. LINQ to SQL语句(20)之存储过程

    在我们编写程序中,往往需要一些存储过程,在LINQ to SQL中怎么使用呢?也许比原来的更简单些.下面我们以NORTHWND.MDF数据库中自带的几个存储过程来理解一下. 1.标量返回 在数据库中, ...

  4. LINQ to SQL语句(19)之ADO.NET与LINQ to SQL

    它基于由 ADO.NET 提供程序模型提供的服务.因此,我们可以将 LINQ to SQL 代码与现有的 ADO.Net 应用程序混合在一起,将当前 ADO.NET 解决方案迁移到 LINQ to S ...

  5. LINQ to SQL语句(18)之运算符转换

    运算符转换 1.AsEnumerable:将类型转换为泛型 IEnumerable 使用 AsEnumerable<TSource> 可返回类型化为泛型 IEnumerable 的参数.在 ...

  6. LINQ to SQL语句(17)之对象加载

    对象加载 延迟加载 在查询某对象时,实际上你只查询该对象.不会同时自动获取这个对象.这就是延迟加载. 例如,您可能需要查看客户数据和订单数据.你最初不一定需要检索与每个客户有关的所有订单数据.其优点是 ...

  7. LINQ to SQL语句(14)之Null语义和DateTime

    Null语义 说明:下面第一个例子说明查询ReportsToEmployee为null的雇员.第二个例子使用Nullable<T>.HasValue查询雇员,其结果与第一个例子相同.在第三 ...

  8. LINQ to SQL语句(10)之Insert

    1.简单形式 说明:new一个对象,使用InsertOnSubmit方法将其加入到对应的集合中,使用SubmitChanges()提交到数据库. var newCustomer = new Custo ...

  9. Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等)

    Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等) 子查询 描述:查询订单数超过5的顾客信息 查询句法: var 子查询 = from c i ...

随机推荐

  1. [NOIP2012 TG D2T1]同余方程

    题目大意:求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. 题解:即求a在mod b意义下的逆元,这里用扩展欧几里得来解决 C++ Code: #include<cstdio ...

  2. BZOJ4200 & 洛谷2304 & UOJ132:[NOI2015]小园丁与老司机——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4200 https://www.luogu.org/problemnew/show/P2304 ht ...

  3. Unity3D LOD Group

    今天下了一个4.0破解版,然后看到一个Demo Level of Detail    就研究了一下  以前用的是Unity3.5 free版本,没有这个功能,真实泪奔....... As your s ...

  4. 玩(lay) 解题报告

    玩(lay) 题目名称 你的昆特牌打的太好啦!不一会你就 \(\tt{AK}\) 了 \(\tt{NOGP}\),只能无聊地堆牌玩! 题目描述 你有一些矩形卡牌,每次你会作如下三个操作: 紧挨着最后一 ...

  5. HDOJ(HDU).1114 Piggy-Bank (DP 完全背包)

    HDOJ(HDU).1114 Piggy-Bank (DP 完全背包) 题意分析 裸的完全背包 代码总览 #include <iostream> #include <cstdio&g ...

  6. js判断设备类型

    1. 判断微信 function is_weixin() { var ua = window.navigator.userAgent.toLowerCase(); if (ua.match(/Micr ...

  7. 四连测Day1

    题目:链接: https://pan.baidu.com/s/163ycV64ioy7uML7AvRDTGw 密码: p86i T1: 倍增求LCA,minn数组记录最小值 #include<i ...

  8. All you need to know about sorting in Postgres

    按:之前看pg的执行计划,多次看到不同的排序方式,但不知何意.偶遇此篇讲解pg执行计划三种排序方式,备忘一下. Sorting Sorting is one of the most fundament ...

  9. mysql的cast()函数

    先来补个知识: decimal的用法: decimal(18,4)总长18位,包括1位小数点和4为小数,也就是说18-1-4=13整数位只有13位decimal(19,1)总长19位,17位整数,1位 ...

  10. C++智能指针 unique_ptr

    C++智能指针 unique_ptr unique_ptr 独占所指向的对象, 同一时刻只能有一个 unique_ptr 指向给定对象(通过禁止拷贝语义, 只有移动语义来实现), 定义于 memory ...