我想生成一个令牌(客户ID),上面带有一封信,用于识别客户

时间:2018-04-20 12:17:33

标签: vb.net token

我想生成一个令牌(客户ID),上面写着一封用于识别客户的信件。 示例-D0101

在我的计划中,客户应该导航到正确的部门, 因此,我们应该为每个客户生成唯一的ID,并将其打印在包含更多信息的传单上。

我只需要为每个客户生成令牌/客户ID(带一个字母),因为该部门。

示例 -

发展部 - A102, 社会部 - D012, 土地和许可证部门 - E210

我尝试了一些代码:

Dim autonum as integer = 101

txtautonum.text = autonum

  If inc <> MaxRows - 1 Then
        inc = MaxRows - 1

        autonum = ds.Tables("ForRepair").Rows(inc).Item(4)
        'txtRepID.Text = autonum + 1

    End If
 If autonum - autonum2 < 0 And autonum2 - autonum > 0 Then
        'MessageBox.Show("autonum2 is bigger")
        txtRepID.Text = autonum+ 1

End If

此代码仅增加先前存储的数字。我想要一个字母的数字。

帮助

1 个答案:

答案 0 :(得分:0)

我想你想要生成一个随机的唯一id,然后,使用Guid类:

  Dim newId = Guid.NewGuid().ToString

  '''Or you can create required length integer

   Dim ran as New Random
   Dim newId as String = ran.Next(0, 9999999999).ToString("D10") '''this will generate a 10 digit unique ID

现在,请注意您没有提及是否要将数据存储在某个数据库中,如果这样做,那么上述代码可能不是很有用,因为它们可能会在某些时候产生相同的数字...... 。这是一个sql查询来帮助你:

  '''Must create a table with the following query :

   CREATE TABLE dbo.tblUsers
   (ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
   UniqueID AS 'UID' + RIGHT('00000000' + CAST(ID AS VARCHAR(8)), 8) PERSISTED,
    Column2...........
    )

创建此类表后,每次INSERT表中的新数据时,SQL都会自动为您生成UniqueID

<强>更新

这是一个可能会生成ID类似于A1020的解决方案(OP在评论中提到的那个)

Public class abc()
Private Const allchars As String = "abcdefghijklmnopqrstuvwxyz0123456789"
Private Shared random As New Random()
Private sub GenerateId()

Dim builder = New StringBuilder()
For i = 0 To 5
    Dim c = allchars(random.[Next](0, allchars.Length))
    builder.Append(c)
Next
Dim NewId = builder.ToString()
End sub