学习笔记(八)——ORM的应用

学习笔记(八)——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);

}

}

}

 

posted @ 2017-11-08 21:51  Angular_JS  阅读(244)  评论(0编辑  收藏  举报