2017-01-28 4 views
-1

C#を使用してSQL Serverから最後の数値を取得するにはどうすればよいですか?SQLからC#を使用して最後の数値コードを取得

例:私は顧客番号保存した場合

「200、」私は新しい顧客を追加するために、新しいフォームで「201」を、それを表示する必要があります。

+1

「最後のコード」は次のコードとは関係ありません。あなたのコードがあなたの新しいコードを保存するまでに時間がたつにつれて使用される数十もあるかもしれません。 – Plutonix

+3

簡単な答え「しないでください」 –

答えて

2

テーブルの最後のID値を表示しないで、ユーザーがフォームに記入している間、同じIDを保持する必要があります。第2のユーザは、第1のユーザが入力中に入ってレコードを追加することができる。

通常の解決策は、ユーザーがレコードを保存した後に番号を表示することです。確認番号として。あなたは、このようにそれを行うことができます。

CreateCustomer.sql

CREATE PROC CreateCustomer(@Name AS VarChar, @Number AS int OUTPUT) 
AS 
BEGIN 
    INSERT Customer(Name) VALUES(@Name) 
    SET @Number = SCOPE_IDENTITY() 
END 

あなたのDAL

var cmd = new SqlCommand("CreateCustomer", conn); 
cmd.Parameters.AddWithValue("@Name", customerName); 
cmd.Parameters.Add(new SqlParameter("@Number", SqlDbType.Int){ Direction = ParameterDirection.Output}); 
cmd.ExecuteNonQuery(); 

MessageBox(String.Format("New customer created with a customer number of: {0}", cmd.Parameters["@Number"].Value)); 
0

でM.Aliはすでにコメントしたよう。それをしないでください。

あなたは2つのオプションがあります:あなたはIDとしてGUIDを使用することができます別の方法として

INSERT dbo.Users(Username) 
VALUES('my new name'); 
SELECT NewID = SCOPE_IDENTITY(); 

Auto Increment Feature、その後select the inserted idを使用します。これは、データベースに連絡せずにクライアントサイドIDが必要な場合に便利です。

+0

みなさんありがとう – yaqoop

関連する問題