标签:efault http not 自动 boolean arp sha nat 对象
Linq
高集成化的数据访问类,它会自动映射数据库结构,将表名完整映射成为类名,将列名完整映射成字段名
数据库数据访问,能大大减少代码量。(反正最后结果就是不用写ado.Net那一套增删改查,有一套封装好的方法直接点就行了)
(1)Linq创建
添加LINQ to SQL类,类名需与要连接的数据库名一样
Linq文件是dbml结尾,一个数据库对应一个Linq文件,比如送你要连接data0720这个数据库,linq的名字也取data0720
(2)数据库连接
打开服务器资源管理器,点击下图黄圈内按钮,连接到数据库,弹出添加连接对话框,填写服务器名(.),选择使用什么身份验证,然后您要连接的数据库,然后将您要用的数据库拉到类中。(这里就相当于ado.Net里的连接语句)
(3)数据扩展
新建一个部分类(关键字:partial),例如User
public string SexStr { get { string end = "<暂无>";//只是从严谨的角度讲,数据库里不一定填写,数据创建时是not null的话大概就不用写了吧... if (this._Sex != null) { end = Convert.ToBoolean(this._Sex) ? "男" : "女"; } return end; } } public string NationName { get { return this.Nation1.NationName;//这里这个Nation1是因为自动生成时重名而导致的。
//这里分开写的话就是 Nation n= this.Nation1; return n.NationName; } //这个数据库里的中User表中的Nation被Nation表约束,根据主外键关系可以不用再单独写查询方法(当然写也可以,亲测)
}
public string BirStr
{
get {
string end = "<暂无>";
if(this._Birthday!=null)
{
end = Convert.ToDateTime(this._Birthday).ToString("yyyy年MM月dd日");
} return end;
}
} User数据扩展
(4)增删改查
首先实例化:
WebDataContext con = null;//Web为建的Linq类名(也就是数据库的名字,因为他俩名字一样) 2 public UserData() 3 { 4 con = new WebDataContext(); 5 }
一、查所有
public List<User> Select() { return con.User.ToList(); } //User为对象名,即表名,下同。这里相当于遍历了Users表里的所有数据添加进一个泛型集合里
二、添加
1 public void Insert(User u) 2 { 3 con.User.InsertOnSubmit(u); 4 con.SubmitChanges();//执行了这句话才完成了对数据库数据的变更 5 }
三、查一条
public User Select(string uname) { return con.User.Where(r => r.UserName == uname).FirstOrDefault();//lamdba表达式这里就可以理解为是一个查询语句,where之后是查询条件,r就是个代号,可以随便起 }
四、删除
public void Delete(string uname) { //1先将对象查出来 User u = con.User.Where(r => r.UserName == uname).FirstOrDefault(); //2删掉 if (u != null) { con.User.DeleteOnSubmit(u); con.SubmitChanges(); } }
五、修改
public void Update(User u) { User uuu = con.User.Where(r => r.UserName == u.UserName).FirstOrDefault();//先查后改 if (uuu != null) { uuu.PassWord = u.PassWord; uuu.NickName = u.NickName; uuu.Sex = u.Sex; uuu.Birthday = u.Birthday; uuu.Nation = u.Nation; } con.SubmitChanges(); }
标签:efault http not 自动 boolean arp sha nat 对象
原文地址:http://www.cnblogs.com/lanrenqilanming/p/6036825.html