Ich brauche eine Hilfe. Ich möchte automatisch alphanumerische ID Beispiel A/001/2016 generieren, wobei 001 um 1 erhöht werden sollte und 2016 Jahr mit vb 2010 darstellen. Ich möchte wie A/001/2016, A/002/2016, A/003/2016Automatische Generierung alphanumerischer ID in vb.net
Dies ist mein Code:
Private Sub autogenerate_ID()
Dim mysqlconnection As MySqlConnection
Dim command As New MySqlCommand
MySqlConnection = New MySqlConnection()
MySqlConnection.ConnectionString = " server = localhost; user id = root; password=; database = birth_and_death "
Command.Connection = MySqlConnection
mysqlconnection.Open()
Dim sqlquery = "select Max(Death_ID) from decease "
command.CommandText = sqlquery
Dim ID As Integer
Dim value As String
Dim d As String = DateTime.Now.ToString("yyyy")
value = command.ExecuteScalar().ToString()
If String.IsNullOrEmpty(value) Then
value = "D/001/1990"
End If
value = value.Substring(3)
Int32.TryParse(value, ID)
ID = ID + 1
value = "D/" + ID.ToString("D3") + "/" + d
' value = "A/" + Convert.ToString(ID) + "/" + d
TxtDeathID.Text = value
command.Dispose()
mysqlconnection.Close()
mysqlconnection.Dispose()
End Sub
Ich empfehle, dass Sie diese Logik in die Datenbank übertragen. Die allgemeine Idee wäre, einen numerischen Autoinkrementierungs-Primärschlüssel und ein Feld für das Erstellen eines Datums zu haben. Das A ist eine Konstante, also ist das egal. Sie können das Jahr ab dem Datum erhalten. Das lässt den mittleren Teil übrig. Verschiedene Datenbank-Engines haben unterschiedliche Möglichkeiten, den n-ten Datensatz zu erhalten. Verwenden Sie das für Sie passende. Ob Sie dies bei jeder ausgewählten Abfrage generieren oder ob Sie einen Datenbanktrigger zum Speichern des Werts verwenden, ist Ihre Entscheidung. Stellen Sie sicher, dass Sie einen Plan für den tausendsten Datensatz haben. –
gibt es wenig Gutes, das normalerweise von solchen Schlüsseln kommt. Sie können SQL CONCAT verwenden, um 3 Datenbits zusammen zu kleben, als ob es eine solche Spalte gäbe. – Plutonix