LinQ的增删改查
LINQ,語言集成查詢(Language Integrated Query)是一組用于c#和Visual Basic語言的擴展。它允許編寫C#或者Visual Basic代碼以查詢數(shù)據(jù)庫相同的方式操作內(nèi)存數(shù)據(jù)。
高集成化的數(shù)據(jù)訪問類,它會自動映射數(shù)據(jù)庫結(jié)構(gòu),將表名完整映射成為類名,將列名完整映射成字段名。
1、LinQ創(chuàng)建
Linq文件是dbml結(jié)尾,一個數(shù)據(jù)庫對應(yīng)一個Linq文件主外鍵
(1)首先表格要有主外鍵關(guān)系
(2)添加新項 LinQ to SQL類 ,起名為數(shù)據(jù)庫名字
(3)服務(wù)器資源管理器 --連接到數(shù)據(jù)庫(相當(dāng)于ADO.NET中的連接字符串)
服務(wù)器名:.;使用SQL Sever身份驗證:用戶名sa;選擇或輸入數(shù)據(jù)庫名稱;
(4)將需要的表拖拽到其中(相當(dāng)于ADO.NET中生存實體類)
(5)創(chuàng)建數(shù)據(jù)訪問類
LinQlianxiDataContext con = null; // LinQlianxiDataContext---數(shù)據(jù)庫名+DataContext 數(shù)據(jù)庫名 public Usersdata(){
con = new LinQlianxiDataContext();//實例化
}
2、屬性擴展
Linq的成員變量是問號型
C#語法中問號(?)的運算符是指:可以為 null 的類型。
public partial class Users //這個類是Users類的一部分 {//性別屬性擴展public string Sexstr {get {string sexs="<暫無>";if(this._Sex !=null)//先判斷是否為空{(diào)sexs = Convert.ToBoolean(this._Sex)?"男":"女";//將布爾問號型轉(zhuǎn)換為布爾型}return sexs;}} //民族屬性擴展 存在外鍵關(guān)系的屬性擴展public string Nationname {get { return this.Nation1.Nationname; }//this.外鍵有關(guān)的表.字段名}3、增刪改查
與ADO.NET 不同處在數(shù)據(jù)訪問類
//查找所有public List<Users> select() {return con.Users.ToList();//con.表名.ToList(); ToList()--查找所有}
//根據(jù)主鍵值查找一條數(shù)據(jù)public Users selectonly(string name) { //where(Lamdba表達式)--查找條件 FirstOrDefault--查找返回第一條或空
return con.Users.Where(a =>a.UserName==name).FirstOrDefault(); }
//添加數(shù)據(jù) public bool insert(Users u)
{
bool b=false;
try{
con.Users.InsertOnSubmit(u); //對表進行添加操作
con.SubmitChanges(); //執(zhí)行添加
b = true;
} catch{}
return b;
}
//刪除數(shù)據(jù)public bool delete(string name) {bool b=false;
//刪除前先進行查找Users u = con.Users.Where(a =>a.UserName==name).FirstOrDefault();if(u !=null)//有返回值{try {con.Users.DeleteOnSubmit(u);//DeleteOnSubmit()的參數(shù)是一個對象con.SubmitChanges();b = true;}catch { } }return b;}
//修改數(shù)據(jù)public bool update(Users u) {bool b = false;
//查找出修改前的數(shù)據(jù)Users uu = con.Users.Where(a => a.UserName == u.UserName).FirstOrDefault();if (u != null){try{
//用修改后的值給修改前的值賦值uu.UserName = u.UserName;uu.PassWord = u.PassWord;uu.NickName = u.NickName;uu.Sex = u.Sex;uu.Birthday = u.Birthday;uu.Nation = u.Nation;con.SubmitChanges();//執(zhí)行b = true;}catch { }}return b;}
?
轉(zhuǎn)載于:https://www.cnblogs.com/zhang-dandan-1/p/6036266.html
總結(jié)
- 上一篇: scikit-learn 逻辑回归类库使
- 下一篇: VR开发中性能问题—OculusWait