2017-12-14 29 views
-5

私は一意の英数字の文字列を生成するasp.net VBクラスファイルの関数を持っています。Asp.net +関数内の関数の呼び出し

文字列を生成した後、文字列がSQLテーブルにすでに存在するかどうかをチェックしたい場合は、そのプロセスを繰り返す必要があります。

私は生成されたIDが既にデータベースに存在している場合、私は同じ機能を呼び出すことができる方法を知りたい

Public Function GenerateUniqueID() As String  
    Dim numbers As String = "1234567890" 
    Dim characters As String = numbers 
    Dim length As Integer = 5 
    Dim UID As String = String.Empty 
    For i As Integer = 0 To length - 1 
     Dim character As String = String.Empty 
     Do 
      Dim index As Integer = New Random().Next(0, characters.Length) 
      character = characters.ToCharArray()(index).ToString() 
     Loop While otp.IndexOf(character) <> -1 
     UID += character 
    Next 

    '----------- 
    check if UID already exist in db 
    if yes 

    repeat same function to generate new ID 

    if no 

    return unique id 

    '----------- 
    Return UID 
End Function 

を使用していたコードを見つけてください。

+1

あなたは何を試しましたか? – Sami

+1

あなたの質問_ "VB.NETでSQLサーバーを照会する方法は?" – CodeCaster

+1

ご質問をより明確にしてください。 –

答えて

0

ランダムな文字列をフロントエンドで生成する代わりに、SQL Server自体で試してみてください。以下を試してください

DECLARE @UID NVARCHAR(255),@Row INT =0 

WHILE ISNULL(@Row,0) =0 
BEGIN 
    SELECT @UID = NEWID() 
    SELECT @Row = COUNT(1) FROM YourTable WHERE AlphaString = @UID 

END 

SELECT AlphaString = @UID 
+1

または一意の識別子列を使用 – War

+0

データベースに保存する前にユーザーフレンドリーなIDをユーザーに表示します。チケット番号:FH87-KJ98923のように。このIDの重複はテーブルにはないはずです。 – user7566865

+0

私は答えを更新しました。テーブルに存在しない新しいIDを返すようになりました。顧客にそれを表示してテーブルに挿入することができます。 –

関連する問題