急,急,更新计算问题??
//更新
pp.ObjectAge = Age(this.txtIdCard.Text); txtIdCard为从文本框接收的身份证号码
pp.UpdateObjectInformation();
private int Age(string txtIdCard)
{
DateTime birthday = BirthDate(this.txtIdCard.Text);
//return DateTime.Today.CompareTo(birthday);
return DateTime.Today.Year - birthday.Year;
}
private DateTime BirthDate(string txtIdCard)
{
try
{
if (txtIdCard.Length == 15)
{
return new DateTime(int.Parse("19" + txtIdCard.Substring(7, 2)), int.Parse(txtIdCard.Substring(9, 2)), int.Parse(txtIdCard.Substring(11, 2)));
}
else if (txtIdCard.Length == 18)
{
return new DateTime(int.Parse(txtIdCard.Substring(6, 4)), int.Parse(txtIdCard.Substring(10, 2)), int.Parse(txtIdCard.Substring(12, 2)));
}
else
return DateTime.MinValue;
}
catch { return DateTime.MinValue; }
}
public void UpdateObjectInformation(int oid)
{
string sql = "UPDATE [dbo].[C_Work_Object] Set " +
"[Obj_age]='" + _age +
"',[Obj_optime]=" +
"getdate() where Obj_id=" + oid;
this.dbProcessor.ExecuteSql(sql);
}
当在文本框添加身份证号码时,可以计算出年龄,但当修改身份证号码时,年龄变成了0;请问哪里有错误啊??望指教??
------解决方案--------------------BirthDate(this.txtIdCard.Text.Trim()); 试一下
------解决方案-------------------- if (txtIdCard.Length == 15)
{
return new DateTime(int.Parse("19" + txtIdCard.Substring(6, 2)), int.Parse(txtIdCard.Substring(8, 2)), int.Parse(txtIdCard.Substring(10, 2)));
}
十五位的不对 出现异常了