我想生成一个令牌(客户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
此代码仅增加先前存储的数字。我想要一个字母的数字。
帮助
答案 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