以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助] (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=92983) |
-- 作者:lamargxd -- 发布时间:2016/11/17 16:50:00 -- [求助] 自己做了一个通过身份证识别年龄、性别和出生日期的程序,可是每次执行以后,再次打开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 |
-- 作者:有点蓝 -- 发布时间:2016/11/17 17:59:00 -- 出生年月是表达式列来的吧,改为数据列 |
-- 作者:lamargxd -- 发布时间:2016/11/18 10:24:00 -- 佩服 佩服! |