从存储过程返回数据并在没有输出或输出参数的代码中使用

时间:2015-05-21 13:51:11

标签: sql-server-2008 c#-4.0 stored-procedures

是否有任何其他方法可以在没有Out Parameter的情况下从存储过程中获取数据。

实施例: -

Create PROCEDURE [dbo].[MaxSalary]
@Msalary money OUTPUT
AS  
SET NOCOUNT ON;
    SELECT @Msalary = max(salary)
    FROM tblSalary ;
GO

在使用SqlParameter的代码中,我们可以轻松获得值

SqlParameter outPutParameter = new SqlParameter();
outPutParameter.ParameterName = "@Msalary";
outPutParameter.SqlDbType = System.Data.SqlDbType.Money;
outPutParameter.Direction = System.Data.ParameterDirection.Output;
cmd.Parameters.Add(outPutParameter);
double maxsal = Convert.ToDouble(outPutParameter.Value);

我们也可以使用Return,但它不会返回代码中的数据。现在我的问题是我们如何在不使用输出参数的情况下实现相同的结果。

希望你理解。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

Create PROCEDURE [dbo].[MaxSalary]
 AS  
Declare @Msalary longint=0
SET NOCOUNT ON;
SELECT @Msalary = max(salary)
FROM tblSalary ;
return @Msalary 
GO

//获取返回值

double maxsal = (double)mycommand.ExecuteScalar();

更多详情可以是found here