Masta Pee Ответов: 1

Как создать уникальный автоматический ключ для текстового поля идентификатора сотрудника


я пытаюсь создать уникальный идентификационный номер для своего текстового поля id, я пробовал свой код, но не работает. Это должно сработать после нажатия кнопки новая запись

Что я уже пробовал:

Public Shared Function GetUniqueKey(ByVal maxSize As Integer) As String
    Dim chars As Char() = New Char(61) {}
    chars = "123456789".ToCharArray()
    Dim data As Byte() = New Byte(0) {}
    Dim crypto As New RNGCryptoServiceProvider()
    crypto.GetNonZeroBytes(data)
    data = New Byte(maxSize - 1) {}
    crypto.GetNonZeroBytes(data)
    Dim result As New StringBuilder(maxSize)
    For Each b As Byte In data
        result.Append(chars(b Mod (chars.Length)))
    Next
    Return result.ToString()
End Function

Public Sub AutoGenerate()
    EmployeeID.Text = "E-" & GetUniqueKey(6)
End Sub

Private Sub NewRecord_Click(sender As Object, e As EventArgs) Handles NewRecord.Click
    AutoGenerate()
    Reset()
End Sub

[no name]

Узнайте, как отлаживать свой код и придумать лучшее описание проблемы, чем "не работает".

Masta Pee

никакая ошибка не генерируется, когда я buid, но уникальный идентификатор не отображается..

[no name]

И что???? Что вы обнаружили, когда перешагнули через свой код? Мы не можем отладить ваш код для вас. Ты должен это сделать. Может быть, ваш метод сброса-это очистка текстового поля? Но мы не можем этого знать, но вы, запускающий свой код через отладчик, знаете. На самом деле слушать людей, говорящих вам об этом, было бы полезно.

1 Ответов

Рейтинг:
7

Wendelius

Если вы храните сотрудников в базе данных, то ответственность за предоставление уникального идентификационного номера и обеспечение его уникальности должна лежать на базе данных.

Если вы не используете базу данных, то вам нужно подумать о каком-то другом подходе. Одним из способов может быть использование Guid, см. идентификатор GUID.Метод NewGuid (Система)[^]