學習筆記——第十周學習筆記
一、 使用ADO.NET改寫控件載入信息的代碼
1 EduBase eduBase=new EduBase(); 2 var student=(from s in eduBase.student 3 where s.No=="3120707001" 4 select s).FirstOrDefault(); 5 var classes=from c in eduBase.Class 6 select c; 7 this.cmb_Class.DataSource=Class; 8 this.cmb_Class.DisplayMember="Number"; 9 this.cmb_Class.ValueMember="No"; 10 if(student!=null) 11 this.txb_No.Text=student.No ; 12 this.txb_Name.Text=student.Name ; 13 this.rdb_Male.Checked=student.Gender; 14 this.rdb_Female.Checked=!student.Gender; 15 this.dtp_BirthDate.Value=student.BirthDate; 16 this.cmb_Class.SelectedValue=student.ClassNo; 17 this.txb_Speciality.Text=student.Speciality;
一、 改寫數據網格(實現批量修改功能)
1、 載入數據
用可視化操作導入數據庫以及數據表,在載入控件中輸入以下代碼
1 Edubase edubase=new Edubase(); 2 var students=from s in edubase.Student; 3 Select s; 4 this.dgv_Score.DataScorce=Students; //將數據網格視圖的數據源設為學生數據表;
1、 提交修改後的數據
(1)提交修改後的數據只需用一個語句:eduBase.SaveChanges();
(2)註意:因EduBase
1 namespace Ex51_Table_Adapter 2 { 3 4 public partial class frm_StudentTable : Form 5 { 6 Private EduBase EduBase;
(3)將EdeBase定義在方法體外後,載入控件的代碼應更改為:
1 EduBase eduBase=new EduBase (); 2 this.EduBase=eduBase; 3 var students=from s in edubase.Student; 4 Select s; 5 This.dgv_Score.DataScorce=Students;
(4)保存修改後的信息
1 int rowAffected=this.EduBase.SaveChanges();
三、 改寫樹形圖
1、 前面的例子中,用代碼載入時後臺數據庫表格中的外鍵約束沒有申明,而是在前端的代碼中實現,而可視化時,我們將這些代碼都省去了,所以在後端的數據庫中應當定義好表格之間的關聯以及外鍵約束
2、 實現表格間的關系
1 EduBase eduBase = new EduBase(); 2 var departments=from d in Department.Include(“Major.Class”) // 使用Include方法實現兩個表格之間的關聯 3 select d;
3、 形成樹形結點
1 this trv_EductionUnit.Node.Clear(); 2 foreach(Department department in departments) 3 { 4 TreeNode departmentNode = new TreeNode(); 5 departmentNode.Text=department.Name; 6 this.trv_ EductionUnit.Nodes.Add(departmentNode); 7 foreach(Major major in department.Major) 8 { 9 TreeNode majorNode= new TreeNode(); 10 majorNode.Text=major.Name; 11 departmentNode.Nodes.Add(majorNode); 12 foreach(Class studentClass in major.Class) 13 { 14 TreeNode classNode= new TreeNode(); 15 classNode.Text=studentClass.Name; 16 classNode.Tag=studentClass.No; 17 majorNode.Nodes.Add(classNode); 18 } 19 } 20 }
學習筆記(八)
——ORM的應用
一、 使用ADO.NET改寫控件載入信息的代碼
EduBase eduBase=new EduBase();
var student=(from s in eduBase.student
where s.No=="3120707001"
select s).FirstOrDefault();
var classes=from c in eduBase.Class
select c;
this.cmb_Class.DataSource=Class;
this.cmb_Class.DisplayMember="Number";
this.cmb_Class.ValueMember="No";
if(student!=null)
this.txb_No.Text=student.No ;
this.txb_Name.Text=student.Name ;
this.rdb_Male.Checked=student.Gender;
this.rdb_Female.Checked=!student.Gender;
this.dtp_BirthDate.Value=student.BirthDate;
this.cmb_Class.SelectedValue=student.ClassNo;
this.txb_Speciality.Text=student.Speciality;
二、 改寫數據網格(實現批量修改功能)
1、 載入數據
用可視化操作導入數據庫以及數據表,在載入控件中輸入以下代碼
Edubase edubase=new Edubase();
var students=from s in edubase.Student;
Select s;
this.dgv_Score.DataScorce=Students; //將數據網格視圖的數據源設為學生數據表;
2、 提交修改後的數據
(1)提交修改後的數據只需用一個語句:eduBase.SaveChanges();
(2)註意:因EduBase在載入控件和提交控件都需要用到,所以應定義為全局變量,即定義在方法體之外,可定義為私有或者公有
namespace Ex51_Table_Adapter
{
public partial class frm_StudentTable : Form
{
Private EduBase EduBase;
…….
(3)將EdeBase定義在方法體外後,載入控件的代碼應更改為:
EduBase eduBase=new EduBase ();
this.EduBase=eduBase;
var students=from s in edubase.Student;
Select s;
This.dgv_Score.DataScorce=Students;
(4)保存修改後的信息
int rowAffected=this.EduBase.SaveChanges();
三、 改寫樹形圖
1、 前面的例子中,用代碼載入時後臺數據庫表格中的外鍵約束沒有申明,而是在前端的代碼中實現,而可視化時,我們將這些代碼都省去了,所以在後端的數據庫中應當定義好表格之間的關聯以及外鍵約束
2、 實現表格間的關系
EduBase eduBase = new EduBase();
var departments=from d in Department.Include(“Major.Class”) // 使用Include方法實現兩個表格之間的關聯
select d;
3、 形成樹形結點
this trv_EductionUnit.Node.Clear();
foreach(Department department in departments)
{
TreeNode departmentNode = new TreeNode();
departmentNode.Text=department.Name;
this.trv_ EductionUnit.Nodes.Add(departmentNode);
foreach(Major major in department.Major)
{
TreeNode majorNode= new TreeNode();
majorNode.Text=major.Name;
departmentNode.Nodes.Add(majorNode);
foreach(Class studentClass in major.Class)
{
TreeNode classNode= new TreeNode();
classNode.Text=studentClass.Name;
classNode.Tag=studentClass.No;
majorNode.Nodes.Add(classNode);
}
}
}
學習筆記——第十周學習筆記