Vb.net 生成id中的日期不是最新的
我写这段代码是为了根据日期生成唯一的id。问题是日期不是最新的。我想要这样的身份证Vb.net 生成id中的日期不是最新的,vb.net,ms-access,Vb.net,Ms Access,我写这段代码是为了根据日期生成唯一的id。问题是日期不是最新的。我想要这样的身份证 2013081901 - if user input data on 19/08/2013 2013082002 - if user input data on 20/08/2013 问题是,我有这样的身份证 2013081901 - user input data on 19/08/2013 2013081902 - user input data on 20/08/2013 这是我的代码: Dim
2013081901 - if user input data on 19/08/2013
2013082002 - if user input data on 20/08/2013
问题是,我有这样的身份证
2013081901 - user input data on 19/08/2013
2013081902 - user input data on 20/08/2013
这是我的代码:
Dim cnnOLEDB As New OleDbConnection(strConnectionString)
sql = "SELECT MAX(sampleID) FROM Spec_1"
cmd = New OleDbCommand(sql, cnnOLEDB)
cnnOLEDB.Open()
Dim dr As OleDbDataReader
dr = cmd.ExecuteReader()
While dr.Read()
Try
If Not IsDBNull(dr(0)) Then
txtSampleID.Text = (dr(0) + 1).ToString
'txtSampleID.Text = dr(0).ToString
Else
txtSampleID.Text = Format(Date.Today, "yyMMdd") + "01"
End If
Catch ex As Exception
txtSampleID.Text = "0"
End Try
End While
试想一下:
- 如果在一天内,您有超过99个条目,会发生什么情况?比如说,
2013081901 - input data 19/08/2013 2013081902 - input data 19/08/2013 2013081903 - input data 19/08/2013 [...] 2013081998 - input data 19/08/2013 2013081999 - input data 19/08/2013 20130819?? - input data 19/08/2013
- 进入第100天会发生什么
2013081901 - input data 19/08/2013 2013082002 - input data 20/08/2013 2013082103 - input data 21/08/2013 [...] 2013112598 - input data 25/11/2013 2013112699 - input data 26/11/2013 20131127?? - input data 27/11/2013
- 如果您每天只收到一个条目,则无需免费提供两位数:
20130819 - input data 19/08/2013 20130820 - input data 20/08/2013
txtSampleID.Text = (dr(0) + 1).ToString
您只需增加值,而不更改日期限制部分。
您可以使用Mod运算符提取增量部分,并添加正确的日期,如下所示:
txtSampleID.Text = Format(Date.Today, "yyMMdd") + ((dr(0) + 1) Mod 100).ToString
使用SqlCommand.ExecuteScalar[您知道,在这种情况下,结果集中只有一行一列。我已经使用了所有方法,但仍然面临相同的问题,是否有任何解决方案可以基于年+月+日期+(增量编号)生成id