我有一個存儲過程返回我添加的行的身份得到輸出,如下圖所示:無法從存儲過程
Create Procedure sp_ADD_CONTACT_EXTRANET_CLIENT
(
@NumCRPCEN nvarchar (255),
@nomContact nvarchar (255),
@prenomContact nvarchar (255),
@telFixe nvarchar (255),
@telPort nvarchar (255),
@mailContact nvarchar(255),
@idPhysique int output
)
as
Begin
INSERT INTO T_Physique values (.....)
SET @idPhysique = @@IDENTITY
RETURN @idPhysique
End
現在我想獲得在ADO.NET輸出和我」已經嘗試了很多東西,但最後一個是:
Requeteadd.Parameters.Add("@idPhysique", SqlDbType.Int).Direction = ParameterDirection.Output;
Requeteadd.ExecuteNonQuery();
int IdPhysique = (int)Requeteadd.Parameters["@idPhysique"].Value;
但它顯示我說錯誤,它說,返回值爲空。有人有想法嗎?
@@ IDENTITY函數返回會話中生成的最後一個Identity值。由於您沒有生成任何,所以返回NULL。 – RBarryYoung
是的,但是當我寫道:'選擇@@ IDENTITY作爲Id'而不是'SET @idPhysique = @@ IDENTITY RETURN @ idPhysique'並刪除參數列表中的參數@idPhysique作爲輸出,它顯示出正確的值 –
將退貨退出。它設置了Proc的返回狀態,可能會搞亂ADO.net。 – RBarryYoung