【问题标题】:Get values multi output parameter (stored procedure ) in MVC在 MVC 中获取值多输出参数(存储过程)
【发布时间】:2016-10-26 14:12:58
【问题描述】:
我的存储过程:
CREATE PROCEDURE [dbo].[GetProduct]
@ProdId int output
@ProdCode nvarchar(20) output
AS
BEGIN
SET @ProdId = 1
SET @ProdCode = 'PROD00001'
END
当我在操作中调用此存储过程时,如何获取@prodId 和@ProdCode 2 个输出参数的值?
【问题讨论】:
标签:
asp.net
asp.net-mvc
entity-framework
asp.net-mvc-3
stored-procedures
【解决方案1】:
将选择命令放入您的 sp as
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);
【解决方案2】:
create PROCEDURE [dbo].[GetProduct]
@ProdId int output
@ProdCode nvarchar(20) output
as
begin
set @ProdId=1
set @ProdCode='PROD00001'
select @ProdId,@ProdCode
end