我的代码,可以参考一下,放在表的DataColChanged里面:
'根据身份证号码生成年龄和性别列
Select Case e.DataCol.Name
Case "身份证号"
If e.DataRow.IsNull("身份证号") Then '身份证号码是否为空
e.DataRow("出生日期") = Nothing '如果为空,则清除出生日期
e.DataRow("性别") = Nothing '如果为空,则清除出生日期
e.DataRow("年龄") = Nothing '如果为空,则清除年龄
Else
'否则从身份证号码列中提取出生日期
e.DataRow("出生日期") = ReadBirthday(e.DataRow("身份证号"))
e.DataRow("性别") = ReadSex(e.DataRow("身份证号"))
Dim d As Date = ReadBirthday(e.DataRow("身份证号"))
Dim y As Integer = d.year
If format(d, "MMdd") <= Format(Date.Today, "MMdd") Then
e.DataRow("年龄") = Date.Today.Year - y
Else
e.DataRow("年龄") = Date.Today.Year - y
End If
End If
End Select