Как создать собственный идентификатор, используя год и целое число в vb.net - PullRequest
0 голосов
/ 05 мая 2018

Я хочу создать собственный идентификационный номер, используя год и целое число. Это мой код:

    Dim idnumber As Integer
    Dim yrVal As String = DateTime.Now.Year
    idnumber = yrVal + "0001"

    textboxIDNumber.Text = idnumber

    Connection()
    sql = "SELECT * FROM Info WHERE idnumber LIKE '" & textboxIDNumber.Text & "'"
    rs.Open(sql, conn, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic) 
    If rs.Fields(0).Value <> idnumber Then 
        rs.AddNew()
        rs.Fields(0).Value = textboxIDNumber.Text
        rs.Fields(1).Value = textboxLastName.Text
        rs.Fields(2).Value = textboxFirstName.Text
        rs.Fields(3).Value = textboxMiddleName.Text
        rs.Update()
        MsgBox("Successfully Added!", MsgBoxStyle.Information, "Message")
    Else
        If rs.Fields(0).Value = idnumber Then
            rs.AddNew()
            textboxIDNumber.Text += 1
            rs.Fields(0).Value = textboxIDNumber.Text
            rs.Fields(1).Value = textboxLastName.Text
            rs.Fields(2).Value = textboxFirstName.Text
            rs.Fields(3).Value = textboxMiddleName.Text
            rs.Update()
            MsgBox("Successfully Added!", MsgBoxStyle.Information, "Message")
        End If
    End If
        conn.Close()

Я хочу добавить автоматически сгенерированный идентификационный номер определенного человека, используя ГОД и целое число из 4 цифр, чтобы быть точным.

    Dim idnumber As Integer
    Dim yrVal As String = DateTime.Now.Year
    idnumber = yrVal + "0001"

Я хочу, чтобы, если я регистрирую человека в первый раз, его / ее идентификационный номер - 20180001, а второго - 20180002, 0003, 004 и т. Д., Но когда наступает 2019 год, он начинается снова с 20190001, 20190002, 20190003 и так далее. В моем коде, как показано выше, он будет увеличиваться с 20180001 до 20189999. Я новичок в этом, и это трудно понять.

Как создать пользовательский идентификатор

Я попробовал ссылку на решение выше, но она использует OLeDBAdapter, dataset, datagrid, и я не знаю, как преобразовать его в ADODB. Я добавил ADODB ссылку. Я новичок и немного смущен.

1 Ответ

0 голосов
/ 05 мая 2018

Это довольно просто ... Впервые сгенерируйте идентификатор с кодом ниже:

Dim idnumber As Integer
Dim yrVal As String = DateTime.Now.Year
idnumber = yrVal + "0001"

''''Insert the data, I am not adding the inserting code :)

Теперь, чтобы сгенерировать второй идентификатор, нам нужно сначала получить последний идентификатор, который мы вставили в базу данных. Для этого используйте следующий код:

Dim LastId as Integer
Dim FirstIdCmd as New SqlCommand("SELECT TOP 1 * FROM TableName ORDER BY ID DESC",connection) 'Here ID is the column name and DESC stands for descending
Dim dr as SqlDataReader = FirstIdCmd.ExecuteReader
While dr.Read
 '''Here we get the last generated I
 Dim lstId as String = dr(0).ToString.Substring(4, 4)
End While

Теперь сфокусируйтесь на строке dr (0) .ToString.Substring (4,4) . Strng.Substring метод используется для извлечения определенной части строки. Метод принимает 2-х целочисленное значение переменной. Первый - StartingIndex, а последний - Length. Поскольку нам нужно получить только последние 3 цифры идентификатора и обойти первые 4 цифры, мы устанавливаем StartIndex в 4 и Length в 4. Итак, давайте вернемся к кодированию снова:

While dr.Read
''Here,instead of creating a new string variable, we pass the value(with +1) to the declared Integer variable called LastID
 LastId = Convert.ToInt32(dr(0).ToString.Substring(4, 4)) + 1
End While

Теперь вы можете использовать идентификатор и вставить его. Надеюсь, это поможет вам.

...