[英]Need help stored procedure sql server 2008 output parameter c#
我有一點問題。 我的值始終為null
。 我不知道為什么
代碼如下:
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很好。 請幫我。
我用這個:
using(SqlConnection conn = new SqlConnection("myConnectionString"))
{
using(SqlCommand cmd = new SqlCommand("myStoredProcedure", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@id", SqlDbType.Int).Direction = ParameterDirection.Output;
try
{
conn.Open();
cmd.ExecuteNonQuery();
// -1 if null
int id = 0;
if (!int.TryParse(cmd.Parameters["@id"].value, out id))
id = -1;
}
catch
{
throw;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.