0

IdSQL Server に 3 つの列( int identity)、email( nvarchar(50))、password( )を持つテーブルがありますnvarchar(50)。ここで、挿入できるクエリを書きたいと思います。emailそのpasswordときは、の ID 要素を返したいと思いidます。

たとえば、挿入abc@dal.caしてパスワードを入力すると、ID 要素の値が返されます。

私はそれを次のように書きました:

@email nvarchar(50), @password nvarchar(50), @id int

insert into addEmail(email, password) 
values(@email,@password)

return @id

これは適切ですか?? どうすればいいですか?これが正常に動作しているかどうかを確認するにはどうすればよいですか? 私が選択した場合

dbo.sp_addEmailReturnId abc@dal.ca, demo

実行をクリックすると、表示されます

「.」付近の構文が正しくありません。

エラーが見つかりません。メールIDとパスワードを挿入して挿入できるようにしようとしています。新しい行ごとに自動的に1ずつ増加するID要素を取得します。

asp.net のコード部分で、ID を取得する方法を教えてください。?

4

4 に答える 4

1

試す

insert into addEmail(email,password) 
OUTPUT INSERTED.ID
values(@email,@password)
于 2013-05-20T05:05:31.230 に答える
1

このクエリを試してください。それはあなたにIDを取得します

insert into addEmail(email, password) values(@email,@password) Select @@IDENTITY;
于 2013-05-20T10:51:41.213 に答える
0

このようにしてください

 private int getEmail(string email, string password) 
 { 
   string cs = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString; 
   using (SqlConnection conn = new SqlConnection(cs)) 
   {  
     conn.Open(); 
     SqlCommand cmd = new SqlCommand("sp_addEmailReturnid", conn); 
     cmd.CommandType = CommandType.StoredProcedure; 
     cmd.Parameters.AddWithValue("@email", email); 
     cmd.Parameters.AddWithValue("@password",password); 
     int nUploadId = Convert.ToInt32(cmd1.ExecuteScalar()); } // Updated Part

ノート

ストアド プロシージャの最後に、つまり insert ステートメントの後に追加します

Select Scope_Identity()

編集

あなたのprocはこのようなものになります

ALTER proc [dbo].[sp_addEmailReturnid]  
    @email                  VARCHAR(500),
    @password       VARCHAR(500)        
AS
BEGIN
 // Your insert statement here

 Select Scope_Identity()

End
于 2013-05-20T05:01:10.680 に答える
0

Scope_Identityを使用

insert into addEmail(email,password) values(@email,@password)

SELECT SCOPE_IDENTITY()
于 2013-05-20T05:02:54.613 に答える