簡體   English   中英

需要幫助的存儲過程SQL Server 2008輸出參數C#

[英]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 我嘗試了很多方法。 返回值必須為01

代碼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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM