Ich arbeite an einer Anwendung, die mir erlaubt, zufällige ID-Nummern (6 ganze Zahlen) für Mitarbeiter zu generieren, aber ich würde gerne wissen, wie diese Zufallszahlen mit C# generieren und nicht die Zahlen kopieren, die bereits von einem anderen Mitarbeiter verwendet wurde in der SQL-Datenbank. Unten ist der Code in SQL getan:Wie generiert man Zufallszahlen mit C#, die nicht in einer Datenbank aufgelistet wurde?
declare @unique_UID varchar(6)
select @unique_UID = Right(ABS(CAST(CAST(NEWID() AS VARBINARY) AS INT)), 6)
while exists (select 1 from dbo.tblUserID
where @unique_UID = UserID_UID
and len(@unique_uid) = 6
and @unique_UID <> @parm_User_Pin)(
select @unique_UID = Right(ABS(CAST(CAST(NEWID() AS VARBINARY) AS INT)), 6)
`
warum nicht einfach einen Primärschlüssel erstellen und sql automatisch damit umgehen lassen – Steve
Wenn Sie einen Multi-User haben Datenbank müssen Sie eine integrierte SQL-Funktion erstellen, um einen eindeutigen Primärschlüssel zu garantieren. – jdweng
Sie halten es besser auf dem sql-Level. Das Verschieben in den C# -Code würde für jede generierte Zahl einen Umlauf zum SQL-Wert erfordern, nur um zu testen, ob es bereits in der Datenbank vorhanden ist. –