1、資料的新增、修改、洗掉、查詢
資料的查詢:
假設有四張表,年級表(S_Grad),班級表(S_Class),學生表(S_Student),團員表(S_Member)
① 單表查詢:查詢學生ID為5的學生的資訊(單條資料)
Linq陳述句:S_Student dbStudent = (from tabStudnet in S_Student
where tabStudent.studentID == 5
select tabStuendt).Single();
Lambda運算式:S_Student dbStudent = S_Student.Single(o => o.studentID == 5);
② 多表查詢:查詢學生ID為5的學生的班級的班級資訊(單條資料)
Linq陳述句:S_Class dbClass = (from tabStudent in S_Student
join tabClass in S_Class
on tabStudent.studentID equals tabClass.studentID
where tabStudent.studentID == 5
select tabClass).Single();
③ 查詢多條資料:查詢班級表中年級ID為3的班級(多條資料)
Linq陳述句:List<S_Class> dbClassList = (from tabClass in S_Class
where tabClass.gradID == 3
select tabClass).toList();
Lambda運算式:List<S_Class> dbClassList = S_Class.Where(o => o.gradID == 3).toList();
④ 子查詢:查詢年級表年級ID為7的年級資訊,以及年級ID為7的所有班級的資訊
需要使用兩個外部類(GradVo繼承年級表,ClassVo繼承班級表),如下:
public class GradVo : S_Grad
{
public List<ClassVo> classList { get; set; } //班級
}
public class ClassVo : S_Class
{
//不需要擴展欄位
}
查詢:
Linq陳述句:S_Grad = (from tabGrad in S_Grad
where tabGrad.gradID == 7
select new GradVo()
{
//套欄位......
//子查詢如下:
classList = (from tabClass in S_Class
where tabClass.gradID == 7
select tabClass).toList()
}.Single();
⑤ 左連接查詢:查詢班級ID為2的所有學生的資訊,以及團員資訊,只有是團員的
學生才有團員ID,需要一個外部類(StudentVo繼承學生表)
public class StudentVo : S_Student
{
public string member { get; set; } //團員
{
查詢:
List<StudentVo> studentList = (from tabStudent in S_Student
join tabMember in S_Member
on tabStudent.memberID equals tabMember.memberID
into tabStudentA //臨時表
from tabStudentB in tabStudentA.DefaultIfEmpty()
select new StudentVo()
{
//套欄位......
//使用三木運算子賦值
//賦值陳述句過長,寫在下面
}).toList();
//如果為空就賦值為空字串,如果有值那么就是它本身的值
賦值:menber = tabMember.member == null ? ”” : tabmember.member
//臨時表:tabStudentA ,新表:tabStudentB ,處理:DefaultIfEmpty()
左連接查詢:以左邊的表為基準,如果左邊有而右邊沒有,那么查詢結果為左邊的
值都有右邊的值為空,如果左邊沒有,而右邊有,那么查詢結果都為
空。
說明:在上面的查詢中有些學生不是團員就沒有團員ID,那么連接團員表查詢的
該學生的資料肯定為空,但是又需要這個資料,所以為了避免這個情況,使
用左連接把查詢出的結果先保存到一張臨時表,對臨時表進行處理(如果序
列為空,回傳null),將處理完的臨時表賦給一張新表,然后對新表查詢,
空的序列都已經回傳null,這樣就不會影響到查詢結果了。
資料的新增:
前臺:① 獲取資料
② 資料驗證
③ 發送請求,提交資料
④ 設定回呼(彈出提示訊息,等等)
后臺:① 接收資料
② 資料驗證
③ 資料查重(根據實際情況是否需要)
④ 新增資料
⑤ 保存新增到資料庫
⑥ 回傳成功訊息
資料的修改:
回填資料:
前臺:① 發送請求(傳遞一個可以確定資料的引數,例如:ID)
② 設定回呼(回填資料)
后臺:① 根據頁面傳遞的引數查詢出對應的資料
② 回傳資料
修改資料:
前臺:① 發送請求(傳遞一個可以確定資料的引數,例如:ID)
② 設定回呼(彈出提示訊息,等等)
后臺:① 接收資料
② 資料驗證
③ 資料查重(根據實際情況是否需要)
④ 修改資料
⑤ 保存修改到資料庫
⑥ 回傳成功訊息
資料的洗掉:
前臺:① 發送請求(傳遞一個可以確定資料的引數,例如:ID)
② 設定回呼(彈出提示訊息,等等)
后臺:① 根據頁面傳遞的引數查詢出需要洗掉的資料
② 查詢資料庫,判斷資料是否正在使用,如果資料正在使用中,不能洗掉
該資料
③ 洗掉資料
④ 保存洗掉到資料庫
⑤ 回傳成功訊息
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/13701.html
標籤:非技術區
上一篇:Ruby gui布局問題
下一篇:分頁查詢
