在 MVC 中获取值多输出参数(存储过程)

Get values multi output parameter (stored procedure ) in MVC

我的存储过程:

CREATE PROCEDURE [dbo].[GetProduct]
    @ProdId int output
    @ProdCode nvarchar(20) output
AS
BEGIN
    SET @ProdId = 1
    SET @ProdCode = 'PROD00001'
END

当我在我的操作中调用此存储过程时,如何获取 2 个输出参数 @prodId@ProdCode 的值?

create PROCEDURE [dbo].[GetProduct]
@ProdId int output
@ProdCode nvarchar(20) output
as
begin
    set @ProdId=1
    set @ProdCode='PROD00001'
    select @ProdId,@ProdCode
end

将 select 命令作为

CREATE PROCEDURE [dbo].[GetProduct]
@ProdId int output
@ProdCode nvarchar(20) output
as
begin
    set @ProdId=1
    set @ProdCode='PROD00001'
    SELECT @ProdId, @ProdCode
end

并像这样调用它

   SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=yourDbName;Integrated Security=True;Pooling=False");
            con.Open();
            SqlCommand cmd = new SqlCommand("GetProduct", con);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter ProdId = new SqlParameter("@ProdId", SqlDbType.Int);
            ProdId.Direction = ParameterDirection.Output;
            cmd.Parameters.Add(ProdId);
            SqlParameter ProdCode = new SqlParameter("@ProdCode", SqlDbType.NVarChar,20);
            ProdCode.Direction = ParameterDirection.Output;
            cmd.Parameters.Add(ProdCode);

            cmd.ExecuteNonQuery();
            string ProductCode = (string)cmd.Parameters["@ProdCode"].Value;
            int ProductId = Convert.ToInt32(cmd.Parameters["@ProdId"].Value);