LinQ的增删改查
Posted zhangdandan1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LinQ的增删改查相关的知识,希望对你有一定的参考价值。
LINQ,语言集成查询(Language Integrated Query)是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。
高集成化的数据访问类,它会自动映射数据库结构,将表名完整映射成为类名,将列名完整映射成字段名。
1、LinQ创建
Linq文件是dbml结尾,一个数据库对应一个Linq文件主外键
(1)首先表格要有主外键关系
(2)添加新项 LinQ to SQL类 ,起名为数据库名字
(3)服务器资源管理器 --连接到数据库(相当于ADO.NET中的连接字符串)
服务器名:.;使用SQL Sever身份验证:用户名sa;选择或输入数据库名称;
(4)将需要的表拖拽到其中(相当于ADO.NET中生存实体类)
(5)创建数据访问类
LinQlianxiDataContext con = null; // LinQlianxiDataContext---数据库名+DataContext
数据库名 public Usersdata()
{
con = new LinQlianxiDataContext();//实例化
}
2、属性扩展
Linq的成员变量是问号型
C#语法中问号(?)的运算符是指:可以为 null 的类型。
public partial class Users //这个类是Users类的一部分 { //性别属性扩展 public string Sexstr { get { string sexs="<暂无>"; if(this._Sex !=null)//先判断是否为空 { sexs = Convert.ToBoolean(this._Sex)?"男":"女";//将布尔问号型转换为布尔型 } return sexs; } } //民族属性扩展 存在外键关系的属性扩展 public string Nationname { get { return this.Nation1.Nationname; }//this.外键有关的表.字段名 }
3、增删改查
与ADO.NET 不同处在数据访问类
//查找所有
public List<Users> select() { return con.Users.ToList();//con.表名.ToList(); ToList()--查找所有 }
//根据主键值查找一条数据 public Users selectonly(string name) {
//where(Lamdba表达式)--查找条件 FirstOrDefault--查找返回第一条或空
return con.Users.Where(a =>a.UserName==name).FirstOrDefault();
}
//添加数据 public bool insert(Users u)
{
bool b=false;
try{
con.Users.InsertOnSubmit(u); //对表进行添加操作
con.SubmitChanges(); //执行添加
b = true;
} catch{}
return b;
}
//删除数据 public bool delete(string name) { bool b=false;
//删除前先进行查找 Users u = con.Users.Where(a =>a.UserName==name).FirstOrDefault(); if(u !=null)//有返回值 { try { con.Users.DeleteOnSubmit(u);//DeleteOnSubmit()的参数是一个对象 con.SubmitChanges(); b = true; } catch { } } return b; }
//修改数据 public bool update(Users u) { bool b = false;
//查找出修改前的数据 Users uu = con.Users.Where(a => a.UserName == u.UserName).FirstOrDefault(); if (u != null) { try {
//用修改后的值给修改前的值赋值 uu.UserName = u.UserName; uu.PassWord = u.PassWord; uu.NickName = u.NickName; uu.Sex = u.Sex; uu.Birthday = u.Birthday; uu.Nation = u.Nation; con.SubmitChanges();//执行 b = true; } catch { } } return b; }
以上是关于LinQ的增删改查的主要内容,如果未能解决你的问题,请参考以下文章