数据库访问技术:

  ADO.net

  EF框架

  LinQ

LinQ是一种高集成化的数据库访问技术,他将数据库中的表映射成程序中的类

  数据库的表名变成类名

  数据库的列名变成字段名/属性名

所有的操作都是通过LinQ自动生成的一个上下文对象来进行操作的,这个对象名是LinQ的名字+"DataContext" ,一个数据库对应一个LinQ

1、创建LinQ

  在项目上右键,添加一个LinQ to SQL

  然后点击服务器资源管理器,选择小插头样式的连接到数据库

  正确填写需要连接的数据库信息,点击确定,然后在左边就可以看到数据库结构,将需要的表直接拖动到界面上即可

2、去除数据访问类的简便开发方式

  使用LinQ时,可以不写数据访问类,直接在程序用调用,这样既省时间,也节省内存

  使用方法:using(实例化上下文对象){}

using (Data0928DataContext con = new Data0928DataContext())
{
Repeater1.DataSource = con.Users.ToList();
Repeater1.DataBind();
}

3、查询、条件查询

  普通查询:查询全部只需一句代码

con.Users.Tolist()

  条件查询:需要使用Lambda表达式

  注意:不管结果有几条数据,返回的都是集合,使用FirstOrDefault取第一个值,并且如果为空不会报错,会返回null

Users u = con.Users.Where(r => r.ids == ids).FirstOrDefault();

4、删除

  删除方法需要一个对象,需要先通过条件查询查出此对象才能进行删除,并且需要SubmitChanges方法才是正式执行方法

con.Users.DeleteOnSubmit(con.Users.Where(r => r.ids == ids).FirstOrDefault());
con.SubmitChanges();

5、修改

  修改不需要想ADO.net中那样需要写很长的字符串,只需要查出需要修改的对象,对这个对象的属性直接修改,修改完毕执行SubmitChanges方法提交即可

Users u = con.Users.Where(r => r.UserName ==         username.Text).FirstOrDefault();
u.PassWord = password.Text;
u.NickName = nickname.Text;
if (RadioButton1.Checked)
u.Sex = true;
else
u.Sex = false;
u.Birthday = Convert.ToDateTime(birthday.Text);
u.Nation = DropDownList1.SelectedValue;
u.Class = DropDownList2.SelectedValue;
try
{
con.SubmitChanges();
Response.Redirect("Index.aspx");
}
catch {
Label1.Text = "修改失败!";
}

6、属性扩展

  VS允许用户对LinQ生成的实体类进行扩展,只需要创建一个跟实体类相同名的类,写上partial,即可在此类里面写自己需要的属性。

  直接在LinQ生成的文件中写也有效,但是如果对LinQ执行任何修改,哪怕只是拖动一下界面的表位置,也会导致代码重新生成,这样自己写进去的属性扩展就会消失,所以只能通过新建一个同名partial类进行添加

public partial class Users
{
public string SexStr
{
get
{
string end = "<无数据>";
if (this._Sex != null)
{
end = Convert.ToBoolean(this._Sex) ? "images/1.png" : "images/0.png";
}
return end;
}
}
public string NationName
{
get
{
return Nation1.NationName;
}
} public string ClassName
{
get
{
return Class1.ClassName;
}
}
}

使用LinQ进行增删改查的更多相关文章

  1. LINQ的增删改查写法&&组合查询

    .ToList();//返回一个集合,包含查到的所有值: .First();//返回查到的第一条数据,如果查不到会报错: .FirstOrDefault();返回查到的第一条数据,差不到返回一个nul ...

  2. LinQ的增删改查

    全名:LinQ to sql类:集成化的数据访问类.会自动生成,进行数据库数据访问. LinQ的创建: 1.链接数据库:添加--添加新项--找到LINQ to SQL类--名字就叫数据库的名称就好. ...

  3. EF+linq的增删改查

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...

  4. linq的创建 和 数据的增删改查

    1.linq创建之前,一定要在sql做好数据表的主外键关系. 2.linq文件是以.dbml结尾,一般一个数据库的名字就是一个linq的名字 3,以实例来演示增删改查 数据库的名字为linq,里面有两 ...

  5. Linq 数据库操作(增删改查)

    Linq数据库增删改查 Linq是一种查询语言,集成包含在formwork中,包含在C#语言中,它的作用是降低查询的门槛,提高开发效率,是我们必须掌握的技术之一,下面是我自己对linq数据库操作的方法 ...

  6. linq的简单增删改查

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

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

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

  8. Webform(Linq增删改查)

    Linq高集成化的数据访问类,它会自动映射数据库结构,将表名完整映射成为类名,将列名完整映射成字段名数据库数据访问,能大大减少代码量.(1)Linq创建添加LINQ to SQL类,类名需与要连接的数 ...

  9. LinQ 创建连接、简单增删改查

    LINQ--语言集成查询(Language Integrated Query)是一组用于c#和Visual Basic语言的扩展.它允许编写C#或者Visual Basic代码以查询数据库相同的方式操 ...

随机推荐

  1. C++之拷贝构造函数、深拷贝、浅拷贝

     C++ Code  12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 ...

  2. MySQL------存储过程的使用

    如图: 1.创建存储过程 create procudure userAdd(na varchar(20),pass varchar(20)) select * from user where name ...

  3. Sokect异步连接发送

    客户端 static void Main(string[] args) { Console.WriteLine("this is a Client!"); Socket clien ...

  4. Hadoop1.2.1 启停的Shell 脚本分析

    停止shell脚本以此类推.

  5. leetcode difficulty and frequency distribution chart

    Here is a difficulty and frequency distribution chart for each problem (which I got from the Interne ...

  6. pushViewController自定义动画http://blog.csdn.net/ralbatr/article/details/22039233

     本文转载至  http://blog.csdn.net/ralbatr/article/details/22039233 实现的主要代码如下: CATransition *transition =  ...

  7. js解析json字符

    这是真真遇到的问题,后台给我返回的是json的字符串: {"status":410,"data":"","message" ...

  8. Android存储Json到本地,和读取本地Json

    /** * 保存json到本地 * @param mActivity * @param filename * @param content */ public static File dir = ne ...

  9. CodeForces 24A Ring road(dfs)

    A. Ring road time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

  10. combined with the Referer header, to potentially build an exhaustive data set of user profiles and browsing habits Client Identification

    w https://www.zhihu.com/question/35307626 w 0-客户端(附加用户信息)首次请求服务端--->服务端生成session(有唯一性).session_id ...