其他语言

本类阅读TOP10

·基于Solaris 开发环境的整体构思
·使用AutoMake轻松生成Makefile
·BCB数据库图像保存技术
·GNU中的Makefile
·射频芯片nRF401天线设计的分析
·iframe 的自适应高度
·BCB之Socket通信
·软件企业如何实施CMM
·入门系列--OpenGL最简单的入门
·WIN95中日志钩子(JournalRecord Hook)的使用

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
常见代码的编写规范(三)---对象的赋值与保存

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

常见代码的编写规范(三)---对象的赋值与保存
2004年12月9日



3.对象的赋值与保存
    对象的赋值与保存,遵循三个步骤,1.数据的检验,2.属性的赋值,3.保存,属性赋值时,首先要保证一条语句赋一个属性的值,如果存在转换就要使用函数进行转换,以保证这一点。然后,对于一个对象中存在与别的对象的关系,该对象也需要保存时,要使用函数,单独保存该对象,不要混杂在一起。例子如下:
1.主函数
 private void bt_save_Click(object sender, System.EventArgs e)
  {
       if(!VerifyData()) return;

       SavePerson();

       Response.Redirect("WFRFDList.aspx");
  }
2.数据校验
private bool VerifyData()
  {
   string sMsg = "";
   if(tb_no.Text.Trim() =="")
   {
    sMsg = " 必须设置员工工号";
   }

   if(this.tbCardNo.Text.Trim()=="")
   {
    sMsg+= " 必须设置员工卡卡号 ";
   }

   if(this.tb_name.Text.Trim()=="")
    sMsg+= " 员工姓名不能为空 ";

   if(ddDepartment.SelectedValue ==null || ddDepartment.SelectedValue =="")
    sMsg+= " 就职部门不能为空 ";

   if(ddPostion.SelectedValue ==null || ddPostion.SelectedValue =="")
    sMsg+= " 职务不能为空 ";

   if(ddPost.SelectedValue ==null || ddPost.SelectedValue =="")
    sMsg+= " 岗位不能为空 ";

   if(this.ddPostionLevel .SelectedValue ==null || ddPostionLevel.SelectedValue =="")
    sMsg+= " 岗位水平不能为空 ";
   if(tb_salary.Text =="")
    sMsg+= "薪水不能为空";

   if(sMsg.Length >0)
   {
    WebSiteHelper.ShowAlertMessage(sMsg);
    return false;
   }
   return true;
  }

3.属性的赋值

    3a.一个对象自身的保存
private int SavePerson()
  {
   CPerson person= GetPerson();
   person.Name = this.tb_name.Text ;
   person.EnglishName = this.tbEnglishName .Text;
   SaveDuty( person.ReportForDuty ,person);
   person.State = 5;   
   person.Save();
   CHelper.FlushSession();
   return 0;
  }

    3b.关联对象的保存
 private CReportForDuty SaveDuty(CReportForDuty report,CPerson person)
  {
   if(report==null)
    report=  new CReportForDuty();
   
   report.StartTime=this.sy_start.DateValue;
   report.TrainingMothes=System.Int16.Parse(this.ddMonth.SelectedItem.Value);
   report.ProbationershipSalary=GetProbationershipSalary();
   report.Person=person;
   report.State = 1;
   report.EndTime =report.StartTime.AddMonths (report.TrainingMothes);
   report.RFDTime = DateTime.Now ;

   report.Employee = this.SaveEmployee (report.Employee ,person);

   report.ProbationershipAccession = this.SaveAccession(report.ProbationershipAccession,report.Employee);
   report.Employee.CurrentAccession = report.ProbationershipAccession;
   report.ProbationershipPost =this.SaveAppointPost(report.ProbationershipPost,report.Employee );
   report.Employee .CurrentPost = report.ProbationershipPost;
   report.Employee .Save();

   report.Save();   
   return report;
  }

    3c.数据的转换
 private decimal GetProbationershipSalary()
  {
   try
   {
    return Decimal.Parse(this.tb_salary.Text);
   }
   catch
   {
    return 0.0M;
   }
  }
4.保存
    由于后台使用E/R Mapping ,这里Save只是简单的调用Save()方法就可以了。




相关文章

相关软件