我正在开发一个数据库应用程序。用户将以表格形式输入他/她的详细信息。一旦他们点击注册按钮,这些数据字段将存储在数据库中。
我想要做的是,一旦点击注册按钮,就会生成一个14位数字,作为唯一标识符键记录在数据库中。这些数字基于当前注册年份的最后2位数,他/她的出生日期是8位数,序列号从1开始(由两个零引导,例如001,001),每次注册按钮增加1点击,最后是一个校验位。
例如15071990110014
Private id As Integer
Public Function generateUniqueNumber() As Long
id += 1
Dim curDate As Date = DateTime.Today
Dim regYear As Integer = curDate.Year.ToString.Substring(2)
Dim dob As Integer = CInt(BirthDate)
Dim vID As String = id.ToString("D3")
Dim uniqueID As String = regYear & dob & vID
Dim r, sum As Integer
While uniqueID <> 0
r = uniqueID Mod 10
sum += r
uniqueID \= 10
End While
Dim checkDigit As Decimal = 0
Dim reminder As Decimal = 0
reminder = sum Mod 10
If reminder = 0 Then
checkDigit = 0
Else
checkDigit = 10 - reminder
End If
Dim uid As String = regYear & dob & vID & checkDigit
Return uid
End Function
答案 0 :(得分:0)
以下是一些可能有用的代码段。
DOB格式化为一致的字符串,月和日的前导零。 id被填充。您需要添加代码来调整ID并执行校验位。
Dim regYear As String = Now.Year.ToString.Substring(2)
Dim dob As String =Format(CDate("01/01/1990"), "MMddyyyy")
Dim vID As String = id.ToString.PadLeft(3, "0")
Dim uniqueID As String = regYear & dob & vID