博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用LinQ进行增删改查
阅读量:4708 次
发布时间:2019-06-10

本文共 2449 字,大约阅读时间需要 8 分钟。

数据库访问技术:

  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; } }}

 

转载于:https://www.cnblogs.com/wt627939556/p/6378944.html

你可能感兴趣的文章
申请苹果开发者账号
查看>>
mysql的表锁和行锁,排他锁和共享锁。
查看>>
安装cartographer
查看>>
Java语法训练-打印各种三角形
查看>>
spring-dao.xml配置问题(一)
查看>>
SQLServer语句大使
查看>>
The Run-Time Constant Pool The Constant Pool
查看>>
剑指Offer-用两个栈实现队列
查看>>
Picker 移动端下拉框
查看>>
erlang局域网内通信
查看>>
ELMAH记录太多404错误,导致数据库超级大
查看>>
python接口自动化测试三十三:获取时间戳(10位和13位)和昨天、今天、明天
查看>>
表达式括号匹配
查看>>
“耐撕”团队2016.04.19站立会议
查看>>
JQuery:empty选择器
查看>>
[NOI2016]优秀的拆分 后缀数组
查看>>
菜鸟的逆袭 - 自我介绍
查看>>
<Bootstrap> 学习笔记二. 栅格系统的使用
查看>>
Codeforces Round #404 (Div. 2) E. Anton and Permutation 分块
查看>>
xml
查看>>