LINQ——语言集成查询(Language Integrated Query)是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。
全名:LinQ to sql类:集成化的数据访问类。会自动生成,进行数据库数据访问。
LinQ的创建:
1、链接数据库:添加--添加新项--找到LINQ to SQL类--名字就叫数据库的名称就好。
2、实例化:找到连接到的数据库,要操作的表拖进来就行了。
3、操作数据库:直接添加类,名称写操作的表名就可以。
创建连接:
添加新项→LinQ to sql类→重命名为需要用的数据库名→服务器资源管理器→连接到数据库→填写服务器名、用户名密码、连接到数据库的名称→从数据连接中要到要引用的表拖进 数据库名.dbml 中
增删改查表达式
查询:
新建类:数据访问类,添加方法:
Data0617DataContext con = new Data0617DataContext(); public List<Users> Select() { return con.Users.ToList(); }
条件查询:使用Lamdba表达式 多条用&&
r:自定义名 指数据库中的一行数据
public List<Users> Select(string uname) { //Lamdba表达式 return con.Users.Where(r => r.UserName == uname && r.PassWord == "1234").ToList(); }
字段扩展:新建类:+ partial
public partial class Users { public string SexStr { get { return Convert.ToBoolean(_Sex) ? "男" : "女"; } } public string BirStr { get { return Convert.ToDateTime(this._Birthday).ToString("yyyy年MM月dd日"); } } //public string NationName { get { return new NationData().SelectNationName(_Nation); } } public string Nname { get { return Nation1.NationName; } } }
添加:
Data0617DataContext con = new Data0617DataContext(); public void Insert(Users u) { con.Users.InsertOnSubmit(u); con.SubmitChanges(); }
删除:
先查到该数据再删除
FirstOrDefault()//取数据的第一条,若没有返回一个null
First() //取数据的第一条,若没有会报错
public void Delete(string Uname) { Users uu = con.Users.Where(r => r.UserName == Uname).FirstOrDefault(); if (uu != null) { con.Users.DeleteOnSubmit(uu); con.SubmitChanges(); } }
修改:
先查到该数据 再重新赋值 提交更新数据
public void Update(Users u) { Users uuu = con.Users.Where(r => r.UserName == u.UserName).FirstOrDefault(); uuu.PassWord = u.PassWord; uuu.NickName = u.NickName; uuu.Sex = u.Sex; uuu.Birthday = u.Birthday; uuu.Nation = u.Nation; con.SubmitChanges(); }