Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 生成id中的日期不是最新的_Vb.net_Ms Access - Fatal编程技术网

Vb.net 生成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

我写这段代码是为了根据日期生成唯一的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 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 
    
也许一种不同的ID算法是可取的

在任何情况下,您提出的具体问题都在以下范围内:

    txtSampleID.Text = (dr(0) + 1).ToString
您只需增加值,而不更改日期限制部分。 您可以使用Mod运算符提取增量部分,并添加正确的日期,如下所示:

    txtSampleID.Text = Format(Date.Today, "yyMMdd") + ((dr(0) + 1) Mod 100).ToString

使用SqlCommand.ExecuteScalar[您知道,在这种情况下,结果集中只有一行一列。我已经使用了所有方法,但仍然面临相同的问题,是否有任何解决方案可以基于年+月+日期+(增量编号)生成id