Linq
高集成化的数据访问类,它会自动映射数据库结构,将表名完整映射成为类名,将列名完整映射成字段名
数据库数据访问,能大大减少代码量。
(1)Linq创建
添加LINQ to SQL类,类名需与要连接的数据库名一样
Linq文件是dbml结尾,一个数据库对应一个Linq文件
(2)数据库连接
打开服务器资源管理器,点击下图黄圈内按钮,连接到数据库,弹出添加连接对话框,填写服务器名(.),选择使用什么身份验证,然后您要连接的数据库,然后将您要用的数据库拉到类中。
(3)数据扩展
新建一个部分类(关键字:partial),例如User
public string SexStr
{
get
{
string end = "<暂无>";
if (this._Sex != null)
{
end = Convert.ToBoolean(this._Sex) ? "男" : "女";
}
return end;
}
}
public string NationName
{
get
{
return this.Nation1.NationName;
}
}
public string BirStr
{
get
{
string end = "<暂无>";
if(this._Birthday!=null)
{
end = Convert.ToDateTime(this._Birthday).ToString("yyyy年MM月dd日");
}
return end;
}
}
User数据扩展
(4)增删改查
首先实例化:
1 WebDataContext con = null;//Web为建的Linq类名
2 public UserData()
3 {
4 con = new WebDataContext();
5 }
一、查所有
1 public List<User> Select() 2 { 3 return con.User.ToList(); 4 } //User为对象名,即表名,下同
二、添加
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表达式,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(); }