0
我有一點問題。我的價值永遠是null
。我不知道爲什麼。下面需要幫助存儲過程sql server 2008輸出參數c#
代碼:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[UsunTowar]
@id int output
AS SET NOCOUNT ON
BEGIN
if Exists (select top 1 Towar from Zamowienia where Towar = @id)
begin
set @id = 0
end
else
begin
delete from Towary where ID = @id
set @id = 1
end
END
現在C#:
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandText = "EXECUTE UsunTowar @id";
cmd.Parameters.Add("@id", SqlDbType.Int).Value = id;
cmd.Parameters["@id"].Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
string result = cmd.Parameters["@id"].Value.ToString();
con.Close();
字符串值'result'
總是null
。我嘗試了很多方法。返回值必須是0
或1
。
代碼sql很好。請幫幫我。
存儲過程不返回任何東西。你可以使用'select @ id'或'return @ id'作爲SP的最後一行來產生。如果你正在返回單個值,你也可以使用ExecuteScalar。 – Miller
還有一件事。當行不存在時,您正試圖刪除它。所以在存在之前添加'NOT' – Miller
我試過'select @ id'和'return @ id',但仍然'result'值爲null。這是非常重要的,我沒有任何想法。 –