LinQ的增删改查
全名:LinQ to sql类:集成化的数据访问类。会自动生成,进行数据库数据访问。
LinQ的创建:
1、链接数据库:添加--添加新项--找到LINQ to SQL类--名字就叫数据库的名称就好。
2、实例化:找到连接到的数据库,要操作的表拖进来就行了。
3、操作数据库:直接添加类,名称写操作的表名就可以。
以下是各个操作:
一、查询所有 和 条件查询
public class UsersDA { Data0617DataContext con = new Data0617DataContext();//实例化 public List<Users> Select()//查所有 { //List<Users> list = new List<Users>(); //list = con.Users.ToList(); //return list; ;这三句可以转换成下面一句 return con.Users.ToList(); }
public List<Users> Select(string uname)//根据条件查询 { //Lamdba表达式 return con.Users.Where(r => r.UserName == uname).ToList(); //r 是随便起的名字 表示数据库里的一条数据, =>是固定格式,多个条件用&&并且 } }
二、字段扩展
添加类----名字就起 表名。
public partial class Users
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日");}} }
扩展民族,外键表
//民族表实例化 民族表根据code找民族名称的方法 操作在来调用 public string NationName { get { return new NationDA().SelectNationName(_Nation); } }//传过来_Nation这个对象
public string Nname { get { return Nation1.NationName; } }//在主外键关系不出错的情况下用这个方法
自动生成Nation1,根据code找到NationName
}
public class NationDA { Data0617DataContext con = new Data0617DataContext(); public string SelectNationName(string Ncode) { return con.Nation.Where(r => r.NationCode == Ncode).FirstOrDefault().NationName;//返回列表中的元素NationName }通过Ncode,查出对象,返回NationName
}
三、添加
在数据访问类中写 添加、删除、修改的方法:
public class UsersData { Data0617DataContext con = new Data0617DataContext(); public void Insert(Users u)//添加 { con.Users.InsertOnSubmit(u); con.SubmitChanges();添加 } 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 Users Select(string uname)//修改时先根据主键值查询 { return con.Users.Where(r => r.UserName == uname).FirstOrDefault(); } 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();再执行提交--修改 } }
后台代码:
protected void Page_Load(object sender, EventArgs e) { Button1.Click += Button1_Click;//添加 Button2.Click += Button2_Click;//删除 } void Button2_Click(object sender, EventArgs e) { //删除 new UsersData().Delete(TextBox7.Text); } void Button1_Click(object sender, EventArgs e) { Users u = new Users();//添加 u.UserName = TextBox1.Text; u.PassWord = TextBox2.Text; u.NickName = TextBox3.Text; u.Sex = Convert.ToBoolean(TextBox4.Text); u.Birthday = Convert.ToDateTime(TextBox5.Text); u.Nation = TextBox6.Text; new UsersData().Insert(u); }
protected void Page_Load(object sender, EventArgs e) { Button2.Click += Button2_Click;//先查询出来再做修改 Button1.Click += Button1_Click;//修改 } void Button1_Click(object sender, EventArgs e) { Users uuu = new Users(); uuu.UserName = TextBox1.Text; uuu.PassWord = TextBox2.Text; uuu.NickName = TextBox3.Text; uuu.Sex = Convert.ToBoolean(TextBox4.Text); uuu.Birthday = Convert.ToDateTime(TextBox5.Text); uuu.Nation = TextBox6.Text; new UsersData().Update(uuu);//修改 } void Button2_Click(object sender, EventArgs e) { //查查有没有这条数据 Users u = new UsersData().Select(TextBox7.Text); if (u == null) { Label1.Text = "查无此人!"; return; } Label1.Text = ""; TextBox1.Text = u.UserName; TextBox2.Text = u.PassWord; TextBox3.Text = u.NickName; TextBox4.Text = u.Sex.ToString(); TextBox5.Text = u.Birthday.ToString(); TextBox6.Text = u.Nation; }