我需要为每个“客户”分配一个唯一的号码。基本上是账号左右。我需要生成一个带有前缀的序号...比如说... 10001111到最终19999999.这些数字必须是唯一的。我知道如何创建一个随机数,但这些数字必须是唯一的,不能重复,所以我不知道如何开始编程逻辑。我找到了一些有用的C#,但我在VB.NET中编程。任何帮助将不胜感激!
答案 0 :(得分:2)
老实说,我不明白为什么你需要做比SQL Server中的Identity Column更复杂的事情。
CREATE TABLE Persons
(
P_Id int PRIMARY KEY IDENTITY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
来源:W3 Schools
然后,您可以撤回客户数据,并以静态或动态方式为此预先添加前缀。
一个静态的例子是
SELECT 'CUST-' + P_Id [CustomerNumber], LastName
FROM Persons
但没有什么能阻止你在列中添加前缀并动态加入它们(如果你需要存储多个前缀)。
在一天结束时,您需要一个持久存储来确保您获得一个唯一的号码。您可以利用为此目的而编写的数据库服务器,而不是重新发明轮子。
你也可以在数据库中有一个表,其中的工作是存储最新的ID号,你可以手动增加和更新它,但我不是那个的忠实粉丝。太乱了。
答案 1 :(得分:1)
执行此类操作的一种常见方法是立即生成所有可能性,并将它们存储在列表中。如果要创建新客户,请从列表中选择一个随机数,然后将其从该列表中删除,以便不能再次使用。我不知道你的场景会有多实用。