自己做了一个通过身份证识别年龄、性别和出生日期的程序,可是每次执行以后,再次打开foxtable,出生年月里的日期总是空的,其他两项年龄和性别是在的,必须用“重置列”的命令才可以再次计算出生日期。请专家看一下我的程序,哪里可以改进,谢谢!
If e .DataCol . Name = "身份证号码" Then '如果更改的是身份证号码列
If e .DataRow . IsNull( "身份证号码" ) Then '身份证号码是否为空
e .DataRow ( "出生年月" ) = Nothing '如果为空,则清除出生日期
e .DataRow ( "性别") = Nothing
Else
If ValidPIN (e.DataRow("身份证号码")) = True '校验身份证号码且正确
e .DataRow ( "出生年月" ) = ReadBirthday ( e. DataRow ("身份证号码" ))
'从身份证号码列中提取出生日期
e .DataRow ( "性别") = ReadSex (e .DataRow ( "身份证号码" ))
'从身份证号码中提取性别
Dim t As TimeSpan = today - CDate(e.DataRow ("出生年月")) '计算年龄
e.DataRow ("年龄") = Math.Round(t.TotalDays / 365.2422,2)
Else
MessageBox.Show("身份证号码错误,请核实","提示") '提示消息框'
e.DataRow( "身份证号码" ) = Nothing
End If
End If
End If