gpt4 book ai didi

c# - 如何在 C# 中生成随机唯一数字

转载 作者:太空狗 更新时间:2023-10-29 22:02:49 26 4
gpt4 key购买 nike

public int GenPurchaseOrderNum()
{
Random random = new Random();
_uniqueNum = random.Next(13287, 21439);
return UniqueNum;
}

我从数据库的 PONumber 列中删除了唯一约束,因为一名员工应该只生成 P.O. # 交易确定后。否则,P.O. # 会有 0。

邮政信箱Number 曾经有唯一约束,这迫使员工生成 P.O.在所有情况下,数据库都不会抛出唯一约束错误。

自从我删除了唯一约束后,任何报价都没有 P.O.将携带 0 值。否则,将为 P.O. 生成一个唯一值。 #。但是,我在 db 中没有唯一约束,这让我很难知道应用程序是否生成了 P.O. # 是否唯一。

我该怎么办?

我希望我的问题足够清楚

最佳答案

GUID 的开销有点高。具体来说,听起来您需要 PO# 的人类可读数字,这使得 GUID 不切实际。我更倾向于使用以下场景。

  1. 删除您对该字段的任何 NOT NULL 限制。
  2. 有一个存储过程,您可以使用它来创建一个新的 PO,使 PO # 字段为 NULL。 Null 在所描述的情况下最合适,因为在 DB NULL 的世界中意味着“未知”,并且由于您实际上没有 PO #,因此它是未知的。
  3. 使用存储过程在交易完成时更新字段以增加到下一个可用的 PO 编号。这将发生在服务器端,因此更新来自哪个客户端并不重要,它对于该表仍然是唯一的。然后,此存储过程可以将更新后的结果集(如果需要)返回给客户端,以便他们可以看到新的 PO #。

那是 20k 英尺的视野。

关于c# - 如何在 C# 中生成随机唯一数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3064881/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com