常见代码的编写规范(三)---对象的赋值与保存

王朝other·作者佚名  2006-01-09
宽屏版  字体: |||超大  

常见代码的编写规范(三)---对象的赋值与保存

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()方法就可以了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有