linq to sql 增刪改查

來源:互聯網
上載者:User

標籤:

ORM《Object Relation Mapping》

Linq To Sql:

一、建立Linq To Sql 類 :
理解上下文類: Linq To Sql 類名+context 利用上下文類可以訪問資料庫中的每一個表;


****************************************** 分類 應用*******************************************************
註: 1 info為實際引用的表名 
2 在執行某一功能時都需要先將上下文類執行個體化出來。

★★★★★ ★★★★★ ★★★★★ ★★★★★ 一、查詢類 ★★★★★ ★★★★★ ★★★★★ ★★★★★ ★★★★★ 
MyDBdataContext context= new MyDBContext();//將上下文類執行個體化
1 查詢所有並顯示
MyDBdataContext context= new MyDBContext();//將上下文類執行個體化
list<info> list = context.info.tolist(); //執行查詢操作;
DataGridView1.DataSouse = list; //將查詢到的資料顯示出來
2 單條件查詢--等值查詢 
var mama = from p in context. info where p.code == "n002" select p // 查詢方式一
var mama = context.info where (p=>p.code=="n002"); //查詢方式二 lambda 運算式 

dataGridview1.datasouce = mama // 送至頁面顯示;
3 單條件查詢----不等值查詢 
var mama = from p in context.info where p.code !="n002" select p //法一
var mama = context.info where (p=>p.code !=n002); // 法二 lambda 運算式
var mama = context.info where( p => datatime.now - p.birthday.values.year); // 時間的提取方法

dataGridview1.datasouce = mama // 送至頁面顯示;
4 多條件查詢:
//var query = from p in _Context.Info where p.Sex == true && p.Birthday.Value.Year > 1985 select p; //法一
//var query = _Context.Info.Where(p=>p.Sex==true && p.Birthday.Value.Year>1985); 法二 lanbda 運算式
var query = _Context.Info.Where(p => p.Sex == true).Where(p=>p.Birthday.Value.Year>1985) ; //多條件邏輯與可以用鏈式運算式寫
dataGridView1.DataSource = query;
5 模糊查詢: 
var mama = from p in context.info where p.name contains("張") selsect p ;// 相當於 like‘%張%‘ 模糊查詢--包含什麼字元的資訊
//var query = from p in _Context.Info where p.Name.StartsWith("張") select p; // like ‘張%‘ 模糊查詢--以什麼字元開頭的資訊

//var query = from p in _Context.Info where p.Name.EndsWith("張") select p; //like ‘%張‘ 模糊查詢--以什麼字元結尾的資訊
//var query = from p in _Context.Info where p.Name.Substring(1,1) == "張" select p;// like ‘_張%‘ 模糊查詢-- 一第幾位是什麼字元的資訊

var query = _Context.Info.Where(p => p.Name.StartsWith("張"));
6 集合操作:
var q1 = from p in _Context.Info where p.Sex== true select p;
var q2 = _Context.Info.Where(p => p.Birthday.Value.Year > 1985);

交集 : var query = q1.Intersect(q2);
並集 : var query = q1.Union(q2);
差集 : var query = q2.Except(q1); 
7 統計函數:

var query = _Context.Info.Where(p => p.Birthday.Value.Year > 1985);
//this.Text = query.Count().ToString(); // 求數量
//this.Text = query.Sum(p=>DateTime.Now.Year - p.Birthday.Value.Year).ToString(); //求和
//this.Text = query.Average(p => DateTime.Now.Year - p.Birthday.Value.Year).ToString();//求平均值
//this.Text = query.Max(p => DateTime.Now.Year - p.Birthday.Value.Year).ToString() ; // 求最大值
this.Text = query.Min(p => DateTime.Now.Year - p.Birthday.Value.Year).ToString(); // 求最小值

7 轉化操作: 
var mama = from p in context.info where p.name contains "張" select p;

List<info> list = mama.ToList(); // 將查詢結果轉化為泛型集合:
info[] list = mama.ToArray(); // 將查詢結果轉化為數組;
info data = mama.tosingle(); // 將查詢結果轉化為單個對象
info data= mama.tofirst(); // 將查詢結果轉化為單個對象

8 將查詢結果 分頁操作
//每頁多少條pagesize,要找第幾頁pageno
var query = _Context.Info.Skip(2*3).Take(2); // 從查詢結果中skip(跳躍)2行 每行3條記錄 要取跳躍後的 2 行;

dataGridView1.DataSource = query;
9 特殊用法記錄 
1 去除查詢中的重複語句: var mama = from p in convert.info where p.name contains "張"select p .distinct() ;


★★★★★ ★★★★★ ★★★★★ ★★★★★ 二 、添加類 ★★★★★ ★★★★★ ★★★★★ ★★★★★ ★★★★★ 
添加操作:
MyDBdataContext context= new MyDBContext();//將上下文類執行個體化
info data = new info();// 將要添加的表格先執行個體化;
data.Code = txtCode.Text; // 進行初始化
data.Name = txtName.Text; 
data.sex =Convert.Toboolean(textsex.text); 
data.nation =txtNation.Text;
data.Birthday = Convert.TodateTime(textBirthday.Text); 

Context.info.insertOnSubmit(data ); //告知上下文類在點擊提交的時候執行插入操作;

Context.SubmitChanges(); // 上下文提交到資料庫 

★★★★★ ★★★★★ ★★★★★ ★★★★★三、刪除類 ★★★★★ ★★★★★ ★★★★★ ★★★★★ ★★★★★ 
刪除操作
// 通過上下文類找到要刪除的對象
MyDBdataContext context= new MyDBContext();//將上下文類執行個體化
var sc = from mama in context.info where mama.Code select mama;
if(sc.count() >0)
info data = sc.first();
// 告訴上下文一下
Context.info.delectOnsubmit(data);
// 上下文類提交到資料庫
Context.SubmitChangs();

★★★★★ ★★★★★ ★★★★★ ★★★★★四 、修改類 ★★★★★ ★★★★★ ★★★★★ ★★★★★ ★★★★★ 
修改操作
MyDBdataContext context= new MyDBContext();//將上下文類執行個體化
//找到要修改的資料
var tianjia = from mama in Context.info where p.code == txtcode.text select mama
// 修改資料
data.Name = txtName.Text;
data.Sex = Convert.ToBoolean(txtSex.Text);
data.Nation = txtNation.Text;
data.Birthday = Convert.ToDateTime(txtBirthday.Text);
// 上下文類提交到資料庫
Context.Submitchanges();

linq to sql 增刪改查

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.