LinQ: 資料庫訪問技術
ADO.NET
EF框架
LinQ to SQL
高整合化的資料庫訪問技術
LINQ 2 SQL 實際是將資料庫的表對映成程式中的類
會把資料庫的表名原封不動的變成類名
資料庫的列名原封不動的變成欄位名/屬性名
所有的操作都是通過Linq自動生成的一個上下文物件來進行操作的 Linq的名字+"DataContext"
一個資料庫對應一個Linq
新增:
public void insert(users u)
{
con.users.InsertOnSubmit(u);
con.SubmitChanges();
}
using (Data0928DataContext con = new Data0928DataContext())
{
con.Users.InsertOnSubmit(u);
con.SubmitChanges();
}
查詢:
public List<users> select()
{
return con.users.ToList();
}
using (Data0928DataContext con = new Data0928DataContext())
{
Repeater1.DataSource = con.Users.ToList();
Repeater1.DataBind();
}
刪除:
public void delete(string un)
{
users u=con.users.Where(r=>r.username==un).FirstOrDefault();
if (u != null)
{
con.users.DeleteOnSubmit(u);
con.SubmitChanges();
}
}
修改:
using (Data0928DataContext con = new Data0928DataContext())
{
Users u = con.Users.Where(r => r.UserName == TextBox1.Text.Trim()).FirstOrDefault();
u.PassWord = TextBox2.Text;
u.NickName = TextBox3.Text;
u.Sex = Convert.ToBoolean(TextBox4.Text);
u.Birthday = Convert.ToDateTime(TextBox5.Text);
u.Nation = TextBox6.Text;
u.Class = TextBox7.Text;
con.SubmitChanges();
Response.Redirect("Default.aspx");
}
屬性擴充套件:設定主外來鍵關係
public string sexstr { get { string end = "暫無"; if (this.sex != null) { end = Convert.ToBoolean(this.sex) ? "img/nan.png" : "img/nv.png"; } return end; } } public string nationname { get { string end = "暫無"; if (this.nation != null) { end = nation1.nationname; } return end; } } public string classname { get { string end = "暫無"; if (this.@class != null) { end = class1.classname; } return end; } }