在 c# 或 vb.net 中每年创建一个递增的序列号

create an increasing sequence number per year in c# or vb.net

有没有办法创建一个每年的序号作为学号 它应该包含年份+序列号 像这样:20150001 / 20160001

是否有可能在代码后面..

如有任何帮助,我们将不胜感激。

你可以试试下面的方法..

Dim SequenceNo as String = 'whatever you want the start number to be
Dim Year as String = 'This would be set to the year
Dim RequiredOutput as String = 'this would be set to the number of students you have
Dim StudentID as New List(Of String)

Do Until SequenceNo > RequiredOutput 
   StudentID.Add(Year & SequenceNo)
   SequenceNo += 1
loop

您可以创建方法来生成下一个序列号,它可以包含年份(或入学日期)和学生 ID,如下所示。

  private static string GenerateNextSequence(DateTime addmissionDate, int studentNumber, int maxPad = 4) {
        var studentNumberString = studentNumber.ToString();
        return
            string.Format("{0}{1}{2}", addmissionDate.Year,
                (new StringBuilder()).Append('0', maxPad - studentNumberString.Length), studentNumberString);

    }

上面方法中的maxPad是最大学生数length(如果max students是9999,那么length就是4)

终于找到了一个简单的代码:

Function GetID() As Long
    Dim vyear As Integer = 2015
    Dim vsno As Long
    cmd1.Connection = con1
    VSQL = "select max(ID) as vID from Table"
    cmd1.CommandText = VSQL
    cmd1.Connection = conOra
    rdr1 = cmd1.ExecuteReader
    rdr1.Read()
    If rdr1.HasRows Then
        If TypeName(rdr1!vID) <> "DBNull" Then
            vsno = rdr1!vID + 1
            GetID = vyear & vsno
        Else
            GetID = vyear & "0001"
        End If
    End If
    rdr1.Close()
    con1.close()
End Function